<?php
/*
    This program is free software: you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
    the Free Software Foundation, either version 3 of the License, or
    (at your option) any later version.

    This program is distributed in the hope that it will be useful,
    but WITHOUT ANY WARRANTY; without even the implied warranty of
    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
    GNU General Public License for more details.

    You should have received a copy of the GNU General Public License
    along with this program.  If not, see <http://www.gnu.org/licenses/>.
*/
define("SC2_TYPEUNIT", 1); // normal units
define("SC2_TYPEWORKER", 2); // workers, Drone/SCV/Probe, MULE calldown
define("SC2_TYPEBUILDING", 3); // any kind of buildings
define("SC2_TYPEADDON", 4); // building addons(terran)
define("SC2_TYPEUPGRADE", 5); // any kind of upgrade
define("SC2_TYPEABILITY", 6); // a unit or building ability that is not an upgrade
define("SC2_TYPEBUILDINGUPGRADE",7); // transform a building to another building
define("SC2_TYPEGEN", 8); // anything that doesn't fit into earlier categories

define("SC2_SUBTYPECREATE", 1); // opposite of cancel
define("SC2_SUBTYPECANCEL", 2); // cancel

class SC2ReplayUtils {
	public static $ABILITYCODES = array(
		// terran
		0x030D00 => array('desc' => 'builds Point defense drone (Raven)', 'name' => 'Point defense drone (Raven)', 'type' => SC2_TYPEABILITY),
		0x040900 => array('desc' => 'uses Seeker missile (Raven)', 'name' => 'Seeker missile (Raven)', 'type' => SC2_TYPEABILITY),
		0x040A00 => array('desc' => 'calls down a MULE', 'name' => 'MULE', 'type' => SC2_TYPEWORKER, 'subtype' => SC2_SUBTYPECREATE, 'min' => 0, 'gas' => 0, 'sup' => 0),
		0x050600 => array('desc' => 'sets rally point (Generic)', 'name' => 'rally point (Generic)', 'type' => SC2_TYPEGEN),
		0x050800 => array('desc' => 'sets rally point (Command center)', 'name' => 'rally point (Command center)', 'type' => SC2_TYPEGEN),
		0x060000 => array('desc' => 'uses Stim pack (Marauder)', 'name' => 'Stim pack', 'type' => SC2_TYPEABILITY),
		0x060100 => array('desc' => 'calls down supplies (Orbital command)', 'name' => 'Calldown: Extra supplies (Orbital command)', 'type' => SC2_TYPEABILITY),
		0x060200 => array('desc' => 'uses 250mm strike cannons (Thor)', 'name' => '250mm strike cannons (Thor)', 'type' => SC2_TYPEABILITY),
		0x060701 => array('desc' => 'returns cargo (SCV)', 'name' => 'return cargo (SCV)', 'type' => SC2_TYPEGEN),
		0x060B00 => array('desc' => 'cancels a build in progress (Starport)', 'name' => 'cancel (Starport)', 'type' => SC2_TYPEGEN, 'subtype' => SC2_SUBTYPECANCEL), // medivac
		0x060B01 => array('desc' => 'cancels a build in progress', 'name' => 'cancel', 'type' => SC2_TYPEGEN, 'subtype' => SC2_SUBTYPECANCEL),
		0x060C01 => array('desc' => 'cancels a build in progress (Barracks techlab)', 'name' => 'cancel (Barracks techlab)', 'type' => SC2_TYPEGEN, 'subtype' => SC2_SUBTYPECANCEL),
		0x060D01 => array('desc' => 'cancels a build in progress (Planetary fortress)', 'name' => 'cancel (Planetary fortress)', 'type' => SC2_TYPEGEN, 'subtype' => SC2_SUBTYPECANCEL),
		0x060F00 => array('desc' => 'repairs', 'name' => 'repair', 'type' => SC2_TYPEGEN, 'subtype' => SC2_SUBTYPECANCEL),
		0x070000 => array('desc' => 'builds a Command center', 'name' => 'Command center', 'type' => SC2_TYPEBUILDING, 'subtype' => SC2_SUBTYPECREATE, 'min' => 400, 'gas' => 0),
		0x070001 => array('desc' => 'builds a Supply depot', 'name' => 'Supply depot', 'type' => SC2_TYPEBUILDING, 'subtype' => SC2_SUBTYPECREATE, 'min' => 100, 'gas' => 0),
		0x070002 => array('desc' => 'builds a Refinery', 'name' => 'Refinery', 'type' => SC2_TYPEBUILDING, 'subtype' => SC2_SUBTYPECREATE, 'min' => 75, 'gas' => 0),
		0x070003 => array('desc' => 'builds a Barracks', 'name' => 'Barracks', 'type' => SC2_TYPEBUILDING, 'subtype' => SC2_SUBTYPECREATE, 'min' => 150, 'gas' => 0),
		0x070004 => array('desc' => 'builds an Engineering Bay', 'name' => 'Engineering Bay', 'type' => SC2_TYPEBUILDING, 'subtype' => SC2_SUBTYPECREATE, 'min' => 125, 'gas' => 0),
		0x070005 => array('desc' => 'builds a Missile turret', 'name' => 'Missile turret', 'type' => SC2_TYPEBUILDING, 'subtype' => SC2_SUBTYPECREATE, 'min' => 100, 'gas' => 0),
		0x070006 => array('desc' => 'builds a Bunker', 'name' => 'Bunker', 'type' => SC2_TYPEBUILDING, 'subtype' => SC2_SUBTYPECREATE, 'min' => 100, 'gas' => 0),
		0x070008 => array('desc' => 'builds a Sensor tower', 'name' => 'Sensor tower', 'type' => SC2_TYPEBUILDING, 'subtype' => SC2_SUBTYPECREATE, 'min' => 125, 'gas' => 100),
		0x070009 => array('desc' => 'builds a Ghost academy', 'name' => 'Ghost academy', 'type' => SC2_TYPEBUILDING, 'subtype' => SC2_SUBTYPECREATE, 'min' => 150, 'gas' => 50),
		0x07000A => array('desc' => 'builds a Factory', 'name' => 'Factory', 'type' => SC2_TYPEBUILDING, 'subtype' => SC2_SUBTYPECREATE, 'min' => 150, 'gas' => 100),
		0x07000B => array('desc' => 'builds a Starport', 'name' => 'Starport', 'type' => SC2_TYPEBUILDING, 'subtype' => SC2_SUBTYPECREATE, 'min' => 150, 'gas' => 100),
		0x07000D => array('desc' => 'builds an Armory', 'name' => 'Armory', 'type' => SC2_TYPEBUILDING, 'subtype' => SC2_SUBTYPECREATE, 'min' => 150, 'gas' => 100),
		0x07000F => array('desc' => 'builds a Fusion core', 'name' => 'Fusion core', 'type' => SC2_TYPEBUILDING, 'subtype' => SC2_SUBTYPECREATE, 'min' => 150, 'gas' => 150),
		0x070200 => array('desc' => 'uses Stim pack (mixed units)', 'name' => 'Stim pack', 'type' => SC2_TYPEABILITY),
		0x070300 => array('desc' => 'uses Cloak (Ghost)', 'name' => 'Cloak (Ghost)', 'type' => SC2_TYPEABILITY),
		0x070301 => array('desc' => 'uses Decloak (Ghost)', 'name' => 'Decloak (Ghost)', 'type' => SC2_TYPEABILITY),
		0x070400 => array('desc' => 'uses Sniper round (Ghost)', 'name' => 'Sniper round (Ghost)', 'type' => SC2_TYPEABILITY),
		0x070600 => array('desc' => 'uses Siege mode (Siege tank)', 'name' => 'Siege mode (Siege tank)', 'type' => SC2_TYPEABILITY),
		0x070700 => array('desc' => 'uses Tank mode (Siege tank)', 'name' => 'Tank mode (Siege tank)', 'type' => SC2_TYPEABILITY),
		0x070800 => array('desc' => 'uses Cloak (Banshee)', 'name' => 'Cloak (Banshee)', 'type' => SC2_TYPEABILITY),
		0x070801 => array('desc' => 'uses Decloak (Banshee)', 'name' => 'Decloak (Banshee)', 'type' => SC2_TYPEABILITY),
		0x070900 => array('desc' => 'loads unit (Medivac)', 'name' => 'load (Medivac)', 'type' => SC2_TYPEABILITY),
		0x070902 => array('desc' => 'unloads all (Medivac)', 'name' => 'unload all (Medivac)', 'type' => SC2_TYPEABILITY),
		0x070903 => array('desc' => 'unloads unit (Medivac)', 'name' => 'unload (Medivac)', 'type' => SC2_TYPEABILITY),
		0x070A00 => array('desc' => 'uses Scanner sweep (Orbital command)', 'name' => 'Scanner sweep (Orbital command)', 'type' => SC2_TYPEABILITY),
		0x070B00 => array('desc' => 'uses Yamato cannon (Battlecruiser)', 'name' => 'Yamato cannon (Battlecruiser)', 'type' => SC2_TYPEABILITY),
		0x070C00 => array('desc' => 'uses Assault mode (Viking)', 'name' => 'Assault mode (Viking)', 'type' => SC2_TYPEABILITY),
		0x070D00 => array('desc' => 'uses Fighter mode (Viking)', 'name' => 'Fighter mode (Viking)', 'type' => SC2_TYPEABILITY),
		0x070E01 => array('desc' => 'unloads all (Bunker)', 'name' => 'unload all (Bunker)', 'type' => SC2_TYPEABILITY),
		0x070E03 => array('desc' => 'unloads unit (Bunker)', 'name' => 'unload (Bunker)', 'type' => SC2_TYPEABILITY),
		0x070F01 => array('desc' => 'unloads all (Command center)', 'name' => 'unload all (Command center)', 'type' => SC2_TYPEABILITY),		
		0x070F03 => array('desc' => 'unloads unit (Command center)', 'name' => 'unload unit (Command center)', 'type' => SC2_TYPEABILITY),		
		0x070F04 => array('desc' => 'loads unit (Command center)', 'name' => 'load (Command center)', 'type' => SC2_TYPEABILITY),		
		0x080000 => array('desc' => 'lifts off (Command center)', 'name' => 'liftoff (Command center)', 'type' => SC2_TYPEABILITY),
		0x080100 => array('desc' => 'lands (Command center)', 'name' => 'land (Command center)', 'type' => SC2_TYPEABILITY),
		0x080200 => array('desc' => 'builds a Tech lab(Barracks)', 'name' => 'Tech lab(Barracks)', 'type' => SC2_TYPEADDON, 'subtype' => SC2_SUBTYPECREATE, 'min' => 50, 'gas' => 25),
		0x080201 => array('desc' => 'builds a Reactor(Barracks)', 'name' => 'Reactor(Barracks)', 'type' => SC2_TYPEADDON, 'subtype' => SC2_SUBTYPECREATE, 'min' => 50, 'gas' => 50),
		0x080300 => array('desc' => 'lifts off (Barracks)', 'name' => 'liftoff (Barracks)', 'type' => SC2_TYPEABILITY),
		0x080400 => array('desc' => 'builds a Tech lab(Factory)', 'name' => 'Tech lab(Factory)', 'type' => SC2_TYPEADDON, 'subtype' => SC2_SUBTYPECREATE, 'min' => 50, 'gas' => 25),
		0x080401 => array('desc' => 'builds a Reactor(Factory)', 'name' => 'Reactor(Factory)', 'type' => SC2_TYPEADDON, 'subtype' => SC2_SUBTYPECREATE, 'min' => 50, 'gas' => 50),
		0x080500 => array('desc' => 'lifts off (Factory)', 'name' => 'liftoff (Factory)', 'type' => SC2_TYPEABILITY),
		0x080600 => array('desc' => 'builds a Tech lab(Starport)', 'name' => 'Tech lab(Starport)', 'type' => SC2_TYPEADDON, 'subtype' => SC2_SUBTYPECREATE, 'min' => 50, 'gas' => 25),
		0x080601 => array('desc' => 'builds a Reactor(Starport)', 'name' => 'Reactor(Starport)', 'type' => SC2_TYPEADDON, 'subtype' => SC2_SUBTYPECREATE, 'min' => 50, 'gas' => 50),
		0x080700 => array('desc' => 'lifts off (Starport)', 'name' => 'liftoff (Starport)', 'type' => SC2_TYPEABILITY),
		0x080800 => array('desc' => 'lands (Factory)', 'name' => 'land (Factory)', 'type' => SC2_TYPEABILITY),
		0x080900 => array('desc' => 'lands (Starport)', 'name' => 'land (Starport)', 'type' => SC2_TYPEABILITY),
		0x080A00 => array('desc' => 'trains an SCV', 'name' => 'SCV', 'type' => SC2_TYPEWORKER, 'subtype' => SC2_SUBTYPECREATE, 'min' => 50, 'gas' => 0, 'sup' => 1),
		0x080B00 => array('desc' => 'lands (Barracks)', 'name' => 'land (Barracks)', 'type' => SC2_TYPEABILITY),
		0x080C00 => array('desc' => 'lowers a Supply depot', 'name' => 'lower a Supply depot', 'type' => SC2_TYPEABILITY),
		0x080D00 => array('desc' => 'raises a Supply depot', 'name' => 'raises a Supply depot', 'type' => SC2_TYPEABILITY),
		0x080E00 => array('desc' => 'trains a Marine', 'name' => 'Marine', 'type' => SC2_TYPEUNIT, 'subtype' => SC2_SUBTYPECREATE, 'min' => 50, 'gas' => 0, 'sup' => 1),
		0x080E01 => array('desc' => 'trains a Reaper', 'name' => 'Reaper', 'type' => SC2_TYPEUNIT, 'subtype' => SC2_SUBTYPECREATE, 'min' => 50, 'gas' => 25, 'sup' => 1),
		0x080E02 => array('desc' => 'trains a Ghost', 'name' => 'Ghost', 'type' => SC2_TYPEUNIT, 'subtype' => SC2_SUBTYPECREATE, 'min' => 150, 'gas' => 150, 'sup' => 2),
		0x080E03 => array('desc' => 'trains a Marauder', 'name' => 'Marauder', 'type' => SC2_TYPEUNIT, 'subtype' => SC2_SUBTYPECREATE, 'min' => 75, 'gas' => 25, 'sup' => 2),
		0x080F01 => array('desc' => 'builds a Siege tank', 'name' => 'Siege tank', 'type' => SC2_TYPEUNIT, 'subtype' => SC2_SUBTYPECREATE, 'min' => 150, 'gas' => 125, 'sup' => 3),
		0x080F04 => array('desc' => 'builds a Thor', 'name' => 'Thor', 'type' => SC2_TYPEUNIT, 'subtype' => SC2_SUBTYPECREATE, 'min' => 300, 'gas' => 200, 'sup' => 6),
		0x080F05 => array('desc' => 'builds a Hellion', 'name' => 'Hellion', 'type' => SC2_TYPEUNIT, 'subtype' => SC2_SUBTYPECREATE, 'min' => 100, 'gas' => 0, 'sup' => 2),
		0x08160E => array('desc' => 'cancels a build in progress (Starport reactor)', 'name' => 'cancel (Starport reactor)', 'type' => SC2_TYPEGEN, 'subtype' => SC2_SUBTYPECANCEL), // medivac
		0x090000 => array('desc' => 'builds a Medivac', 'name' => 'Medivac', 'type' => SC2_TYPEUNIT, 'subtype' => SC2_SUBTYPECREATE, 'min' => 100, 'gas' => 100, 'sup' => 2),
		0x090001 => array('desc' => 'builds a Banshee', 'name' => 'Banshee', 'type' => SC2_TYPEUNIT, 'subtype' => SC2_SUBTYPECREATE, 'min' => 150, 'gas' => 100, 'sup' => 3),
		0x090002 => array('desc' => 'builds a Raven', 'name' => 'Raven', 'type' => SC2_TYPEUNIT, 'subtype' => SC2_SUBTYPECREATE, 'min' => 100, 'gas' => 200, 'sup' => 2),
		0x090003 => array('desc' => 'builds a Battlecruiser', 'name' => 'Battlecruiser', 'type' => SC2_TYPEUNIT, 'subtype' => SC2_SUBTYPECREATE, 'min' => 400, 'gas' => 300, 'sup' => 6),
		0x090004 => array('desc' => 'builds a Viking', 'name' => 'Viking', 'type' => SC2_TYPEUNIT, 'subtype' => SC2_SUBTYPECREATE, 'min' => 150, 'gas' => 75, 'sup' => 2),
		0x090100 => array('desc' => 'researches Hi-sec auto tracking', 'name' => 'Hi-sec auto tracking', 'type' => SC2_TYPEUPGRADE, 'subtype' => SC2_SUBTYPECREATE, 'min' => 100, 'gas' => 100),
		0x090101 => array('desc' => 'researches Structure armor', 'name' => 'Structure armor', 'type' => SC2_TYPEUPGRADE, 'subtype' => SC2_SUBTYPECREATE, 'min' => 150, 'gas' => 150),
		0x090102 => array('desc' => 'researches Infantry weapons level 1', 'name' => 'Infantry weapons L1', 'type' => SC2_TYPEUPGRADE, 'subtype' => SC2_SUBTYPECREATE, 'min' => 100, 'gas' => 100),
		0x090103 => array('desc' => 'researches Infantry weapons level 2', 'name' => 'Infantry weapons L2', 'type' => SC2_TYPEUPGRADE, 'subtype' => SC2_SUBTYPECREATE, 'min' => 175, 'gas' => 175),
		0x090104 => array('desc' => 'researches Infantry weapons level 3', 'name' => 'Infantry weapons L3', 'type' => SC2_TYPEUPGRADE, 'subtype' => SC2_SUBTYPECREATE, 'min' => 250, 'gas' => 250),
		0x090105 => array('desc' => 'researches Neosteel frame', 'name' => 'Neosteel frame', 'type' => SC2_TYPEUPGRADE, 'subtype' => SC2_SUBTYPECREATE, 'min' => 100, 'gas' => 100),
		0x090106 => array('desc' => 'researches Infantry armor level 1', 'name' => 'Infantry armor L1', 'type' => SC2_TYPEUPGRADE, 'subtype' => SC2_SUBTYPECREATE, 'min' => 100, 'gas' => 100),
		0x090107 => array('desc' => 'researches Infantry armor level 2', 'name' => 'Infantry armor L2', 'type' => SC2_TYPEUPGRADE, 'subtype' => SC2_SUBTYPECREATE, 'min' => 175, 'gas' => 175),
		0x090108 => array('desc' => 'researches Infantry armor level 3', 'name' => 'Infantry armor L3', 'type' => SC2_TYPEUPGRADE, 'subtype' => SC2_SUBTYPECREATE, 'min' => 250, 'gas' => 250),
		0x090203 => array('desc' => 'researches Nitro packs', 'name' => 'Nitro packs', 'type' => SC2_TYPEUPGRADE, 'subtype' => SC2_SUBTYPECREATE, 'min' => 50, 'gas' => 50),
		0x090300 => array('desc' => 'builds a Nuke', 'name' => 'Tactical nuke', 'type' => SC2_TYPEBUILDINGUPGRADE, 'subtype' => SC2_SUBTYPECREATE, 'min' => 100, 'gas' => 100),
		0x090400 => array('desc' => 'researches Stim pack', 'name' => 'Stim pack', 'type' => SC2_TYPEUPGRADE, 'subtype' => SC2_SUBTYPECREATE, 'min' => 100, 'gas' => 100),
		0x090401 => array('desc' => 'researches Combat shield', 'name' => 'Combat shield', 'type' => SC2_TYPEUPGRADE, 'subtype' => SC2_SUBTYPECREATE, 'min' => 100, 'gas' => 100),
		0x090402 => array('desc' => 'researches Concussive Shells', 'name' => 'Concussive shells', 'type' => SC2_TYPEUPGRADE, 'subtype' => SC2_SUBTYPECREATE, 'min' => 50, 'gas' => 50),
		0x090500 => array('desc' => 'researches Siege tech', 'name' => 'Siege tech', 'type' => SC2_TYPEUPGRADE, 'subtype' => SC2_SUBTYPECREATE, 'min' => 100, 'gas' => 100),
		0x090501 => array('desc' => 'researches Infernal pre-igniter', 'name' => 'Infernal pre-igniter', 'type' => SC2_TYPEUPGRADE, 'subtype' => SC2_SUBTYPECREATE, 'min' => 150, 'gas' => 150),
		0x090502 => array('desc' => 'researches 250mm strike cannons', 'name' => '250mm strike cannons', 'type' => SC2_TYPEUPGRADE, 'subtype' => SC2_SUBTYPECREATE, 'min' => 150, 'gas' => 150),
		0x090600 => array('desc' => 'researches Cloaking field', 'name' => 'Cloaking field', 'type' => SC2_TYPEUPGRADE, 'subtype' => SC2_SUBTYPECREATE, 'min' => 200, 'gas' => 200),
		0x090602 => array('desc' => 'researches Caduceus reactor', 'name' => 'Caduceus reactor', 'type' => SC2_TYPEUPGRADE, 'subtype' => SC2_SUBTYPECREATE, 'min' => 100, 'gas' => 100),
		0x090603 => array('desc' => 'researches Corvid reactor', 'name' => 'Corvid reactor', 'type' => SC2_TYPEUPGRADE, 'subtype' => SC2_SUBTYPECREATE, 'min' => 150, 'gas' => 150),
		0x090606 => array('desc' => 'researches Seeker missile', 'name' => 'Seeker missile', 'type' => SC2_TYPEUPGRADE, 'subtype' => SC2_SUBTYPECREATE, 'min' => 150, 'gas' => 150),
		0x090607 => array('desc' => 'researches Durable materials', 'name' => 'Durable materials', 'type' => SC2_TYPEUPGRADE, 'subtype' => SC2_SUBTYPECREATE, 'min' => 150, 'gas' => 150),
		0x090700 => array('desc' => 'researches Personal cloaking', 'name' => 'Personal cloaking', 'type' => SC2_TYPEUPGRADE, 'subtype' => SC2_SUBTYPECREATE, 'min' => 150, 'gas' => 150),
		0x090701 => array('desc' => 'researches Moebius reactor', 'name' => 'Moebius reactor', 'type' => SC2_TYPEUPGRADE, 'subtype' => SC2_SUBTYPECREATE, 'min' => 100, 'gas' => 100),
		0x090802 => array('desc' => 'researches Vehicle plating level 1', 'name' => 'Vehicle plating L1', 'type' => SC2_TYPEUPGRADE, 'subtype' => SC2_SUBTYPECREATE, 'min' => 100, 'gas' => 100),
		0x090803 => array('desc' => 'researches Vehicle plating level 2', 'name' => 'Vehicle plating L2', 'type' => SC2_TYPEUPGRADE, 'subtype' => SC2_SUBTYPECREATE, 'min' => 175, 'gas' => 175),
		0x090804 => array('desc' => 'researches Vehicle plating level 3', 'name' => 'Vehicle plating L3', 'type' => SC2_TYPEUPGRADE, 'subtype' => SC2_SUBTYPECREATE, 'min' => 250, 'gas' => 250),
		0x090805 => array('desc' => 'researches Vehicle weapons level 1', 'name' => 'Vehicle weapons L1', 'type' => SC2_TYPEUPGRADE, 'subtype' => SC2_SUBTYPECREATE, 'min' => 100, 'gas' => 100),
		0x090806 => array('desc' => 'researches Vehicle weapons level 2', 'name' => 'Vehicle weapons L2', 'type' => SC2_TYPEUPGRADE, 'subtype' => SC2_SUBTYPECREATE, 'min' => 175, 'gas' => 175),
		0x090807 => array('desc' => 'researches Vehicle weapons level 3', 'name' => 'Vehicle weapons L3', 'type' => SC2_TYPEUPGRADE, 'subtype' => SC2_SUBTYPECREATE, 'min' => 250, 'gas' => 250),
		0x090808 => array('desc' => 'researches Ship plating level 1', 'name' => 'Ship plating L1', 'type' => SC2_TYPEUPGRADE, 'subtype' => SC2_SUBTYPECREATE, 'min' => 150, 'gas' => 150),
		0x090809 => array('desc' => 'researches Ship plating level 2', 'name' => 'Ship plating L2', 'type' => SC2_TYPEUPGRADE, 'subtype' => SC2_SUBTYPECREATE, 'min' => 225, 'gas' => 225),
		0x09080A => array('desc' => 'researches Ship plating level 3', 'name' => 'Ship plating L3', 'type' => SC2_TYPEUPGRADE, 'subtype' => SC2_SUBTYPECREATE, 'min' => 300, 'gas' => 300),
		0x09080B => array('desc' => 'researches Ship weapons level 1', 'name' => 'Ship weapons L1', 'type' => SC2_TYPEUPGRADE, 'subtype' => SC2_SUBTYPECREATE, 'min' => 100, 'gas' => 100),
		0x09080C => array('desc' => 'researches Ship weapons level 2', 'name' => 'Ship weapons L2', 'type' => SC2_TYPEUPGRADE, 'subtype' => SC2_SUBTYPECREATE, 'min' => 175, 'gas' => 175),
		0x09080D => array('desc' => 'researches Ship weapons level 3', 'name' => 'Ship weapons L3', 'type' => SC2_TYPEUPGRADE, 'subtype' => SC2_SUBTYPECREATE, 'min' => 250, 'gas' => 250),
		0x0C0D00 => array('desc' => 'upgrades to Planetary fortress', 'name' => 'Planetary fortress', 'type' => SC2_TYPEBUILDINGUPGRADE, 'subtype' => SC2_SUBTYPECREATE, 'min' => 150, 'gas' => 150),
		0x0D0300 => array('desc' => 'upgrades to Orbital command', 'name' => 'Orbital command', 'type' => SC2_TYPEBUILDINGUPGRADE, 'subtype' => SC2_SUBTYPECREATE, 'min' => 150, 'gas' => 0),
		0x0D0301 => array('desc' => 'cancels a build in progress (Command center)', 'name' => 'cancel (Command center)', 'type' => SC2_TYPEGEN, 'subtype' => SC2_SUBTYPECANCEL),
		0x0D0600 => array('desc' => 'lifts off (Orbital command)', 'name' => 'liftoff (Orbital command)', 'type' => SC2_TYPEABILITY),
		0x0D0700 => array('desc' => 'lands (Orbital command)', 'name' => 'land (Orbital command)', 'type' => SC2_TYPEABILITY),
		0x0D0B00 => array('desc' => 'researches Weapon refit', 'name' => 'Weapon refit', 'type' => SC2_TYPEUPGRADE, 'subtype' => SC2_SUBTYPECREATE, 'min' => 150, 'gas' => 150),
		0x0D0B01 => array('desc' => 'researches Behemoth reactor', 'name' => 'Behemoth reactor', 'type' => SC2_TYPEUPGRADE, 'subtype' => SC2_SUBTYPECREATE, 'min' => 150, 'gas' => 150),
		0x0D0E00 => array('desc' => 'uses Tactical nuclear strike (Ghost)', 'name' => 'Tactical nuclear strike (Ghost)', 'type' => SC2_TYPEABILITY),
		0x0E0000 => array('desc' => 'salvages a Bunker', 'name' => 'salvage (Bunker)', 'type' => SC2_TYPEABILITY),
		0x0E0100 => array('desc' => 'uses EMP round (Ghost)', 'name' => 'EMP round (Ghost)', 'type' => SC2_TYPEABILITY),
		0x0F0A00 => array('desc' => 'builds auto-turret (Raven)', 'name' => 'Auto-turret (Raven)', 'type' => SC2_TYPEABILITY),

		// protoss


		0x030500 => array('desc' => 'researches Flux vanes', 'name' => 'Flux vanes', 'type' => SC2_TYPEUPGRADE, 'subtype' => SC2_SUBTYPECREATE, 'min' => 150, 'gas' => 150),
		0x030501 => array('desc' => 'researches Graviton catapult', 'name' => 'Graviton catapult', 'type' => SC2_TYPEUPGRADE, 'subtype' => SC2_SUBTYPECREATE, 'min' => 150, 'gas' => 150),
		0x030700 => array('desc' => 'uses Guardian shield (Sentry)', 'name' => 'Guardian shield (Sentry)', 'type' => SC2_TYPEABILITY),
		0x030A00 => array('desc' => 'builds a Mothership', 'name' => 'Mothership', 'type' => SC2_TYPEUNIT, 'subtype' => SC2_SUBTYPECREATE, 'min' => 400, 'gas' => 400, 'sup' => 8),
		0x030B00 => array('desc' => 'uses Feedback (High templar)', 'name' => 'Feedback (High templar)', 'type' => SC2_TYPEABILITY),
		0x030C00 => array('desc' => 'uses Mass recall (Mothership)', 'name' => 'Mass recall (Mothership)', 'type' => SC2_TYPEABILITY),
		0x030E00 => array('desc' => 'uses Hallucination - Archon (Sentry)', 'name' => 'Hallucination - Archon (Sentry)', 'type' => SC2_TYPEABILITY),
		0x030F00 => array('desc' => 'uses Hallucination - Colossus (Sentry)', 'name' => 'Hallucination - Colossus (Sentry)', 'type' => SC2_TYPEABILITY),
		0x040000 => array('desc' => 'uses Hallucination - High templar (Sentry)', 'name' => 'Hallucination - High templar (Sentry)', 'type' => SC2_TYPEABILITY),
		0x040100 => array('desc' => 'uses Hallucination - Immortal (Sentry)', 'name' => 'Hallucination - Immortal (Sentry)', 'type' => SC2_TYPEABILITY),
		0x040200 => array('desc' => 'uses Hallucination - Phoenix (Sentry)', 'name' => 'Hallucination - Phoenix (Sentry)', 'type' => SC2_TYPEABILITY),
		0x040300 => array('desc' => 'uses Hallucination - Probe (Sentry)', 'name' => 'Hallucination - Probe (Sentry)', 'type' => SC2_TYPEABILITY),
		0x040400 => array('desc' => 'uses Hallucination - Stalker (Sentry)', 'name' => 'Hallucination - Stalker (Sentry)', 'type' => SC2_TYPEABILITY),
		0x040500 => array('desc' => 'uses Hallucination - Void ray (Sentry)', 'name' => 'Hallucination - Void ray (Sentry)', 'type' => SC2_TYPEABILITY),
		0x040600 => array('desc' => 'uses Hallucination - Warp prism (Sentry)', 'name' => 'Hallucination - Warp prism (Sentry)', 'type' => SC2_TYPEABILITY),
		0x040700 => array('desc' => 'uses Hallucination - Zealot (Sentry)', 'name' => 'Hallucination - Zealot (Sentry)', 'type' => SC2_TYPEABILITY),
		0x040B00 => array('desc' => 'uses Graviton beam (Phoenix)', 'name' => 'Graviton beam (Phoenix)', 'type' => SC2_TYPEABILITY),
		0x050900 => array('desc' => 'sets rally point (Nexus)', 'name' => 'rally point (Nexus)', 'type' => SC2_TYPEGEN),
		0x060801 => array('desc' => 'returns cargo (Probe)', 'name' => 'return cargo (Probe)', 'type' => SC2_TYPEGEN),
		0x060E00 => array('desc' => 'cancels a build in progress', 'name' => 'cancel', 'type' => SC2_TYPEGEN, 'subtype' => SC2_SUBTYPECANCEL), // pylon
		0x060400 => array('desc' => 'uses Chrono boost (Nexus)', 'name' => 'Chrono boost (Nexus)', 'type' => SC2_TYPEABILITY),
		0x090900 => array('desc' => 'builds a Nexus', 'name' => 'Nexus', 'type' => SC2_TYPEBUILDING, 'subtype' => SC2_SUBTYPECREATE, 'min' => 400, 'gas' => 0),
		0x090901 => array('desc' => 'builds a Pylon', 'name' => 'Pylon', 'type' => SC2_TYPEBUILDING, 'subtype' => SC2_SUBTYPECREATE, 'min' => 100, 'gas' => 0),
		0x090902 => array('desc' => 'builds an Assimilator', 'name' => 'Assimilator', 'type' => SC2_TYPEBUILDING, 'subtype' => SC2_SUBTYPECREATE, 'min' => 75, 'gas' => 0),
		0x090903 => array('desc' => 'builds a Gateway', 'name' => 'Gateway', 'type' => SC2_TYPEBUILDING, 'subtype' => SC2_SUBTYPECREATE, 'min' => 150, 'gas' => 0),
		0x090904 => array('desc' => 'builds a Forge', 'name' => 'Forge', 'type' => SC2_TYPEBUILDING, 'subtype' => SC2_SUBTYPECREATE, 'min' => 150, 'gas' => 0),
		0x090905 => array('desc' => 'builds a Fleet beacon', 'name' => 'Fleet beacon', 'type' => SC2_TYPEBUILDING, 'subtype' => SC2_SUBTYPECREATE, 'min' => 300, 'gas' => 200),
		0x090906 => array('desc' => 'builds a Twilight council', 'name' => 'Twilight council', 'type' => SC2_TYPEBUILDING, 'subtype' => SC2_SUBTYPECREATE, 'min' => 150, 'gas' => 100),
		0x090907 => array('desc' => 'builds a Photon cannon', 'name' => 'Photon cannon', 'type' => SC2_TYPEBUILDING, 'subtype' => SC2_SUBTYPECREATE, 'min' => 150, 'gas' => 0),
		0x090909 => array('desc' => 'builds a Stargate', 'name' => 'Stargate', 'type' => SC2_TYPEBUILDING, 'subtype' => SC2_SUBTYPECREATE, 'min' => 150, 'gas' => 150),
		0x09090A => array('desc' => 'builds Templar archives', 'name' => 'Templar archives', 'type' => SC2_TYPEBUILDING, 'subtype' => SC2_SUBTYPECREATE, 'min' => 150, 'gas' => 200),
		0x09090B => array('desc' => 'builds Dark shrine', 'name' => 'Dark shrine', 'type' => SC2_TYPEBUILDING, 'subtype' => SC2_SUBTYPECREATE, 'min' => 100, 'gas' => 250),
		0x09090C => array('desc' => 'builds a Robotics bay', 'name' => 'Robotics bay', 'type' => SC2_TYPEBUILDING, 'subtype' => SC2_SUBTYPECREATE, 'min' => 200, 'gas' => 200),
		0x09090D => array('desc' => 'builds a Robotics facility', 'name' => 'Robotics facility', 'type' => SC2_TYPEBUILDING, 'subtype' => SC2_SUBTYPECREATE, 'min' => 200, 'gas' => 100),
		0x09090E => array('desc' => 'builds a Cybernetics core', 'name' => 'Cybernetics core', 'type' => SC2_TYPEBUILDING, 'subtype' => SC2_SUBTYPECREATE, 'min' => 150, 'gas' => 0),
		0x090B00 => array('desc' => 'trains a Zealot', 'name' => 'Zealot', 'type' => SC2_TYPEUNIT, 'subtype' => SC2_SUBTYPECREATE, 'min' => 100, 'gas' => 0, 'sup' => 2),
		0x090B01 => array('desc' => 'trains a Stalker', 'name' => 'Stalker', 'type' => SC2_TYPEUNIT, 'subtype' => SC2_SUBTYPECREATE, 'min' => 125, 'gas' => 50, 'sup' => 2),
		0x090B03 => array('desc' => 'trains a High templar', 'name' => 'High templar', 'type' => SC2_TYPEUNIT, 'subtype' => SC2_SUBTYPECREATE, 'min' => 50, 'gas' => 150, 'sup' => 2),
		0x090B04 => array('desc' => 'trains a Dark templar', 'name' => 'Dark templar', 'type' => SC2_TYPEUNIT, 'subtype' => SC2_SUBTYPECREATE, 'min' => 125, 'gas' => 125, 'sup' => 2),
		0x090B05 => array('desc' => 'trains a Sentry', 'name' => 'Sentry', 'type' => SC2_TYPEUNIT, 'subtype' => SC2_SUBTYPECREATE, 'min' => 50, 'gas' => 100, 'sup' => 2),
		0x090C00 => array('desc' => 'builds a Phoenix', 'name' => 'Phoenix', 'type' => SC2_TYPEUNIT, 'subtype' => SC2_SUBTYPECREATE, 'min' => 150, 'gas' => 100, 'sup' => 2),
		0x090C02 => array('desc' => 'builds a Carrier', 'name' => 'Carrier', 'type' => SC2_TYPEUNIT, 'subtype' => SC2_SUBTYPECREATE, 'min' => 350, 'gas' => 250, 'sup' => 6),
		0x090C04 => array('desc' => 'builds a Void ray', 'name' => 'Void ray', 'type' => SC2_TYPEUNIT, 'subtype' => SC2_SUBTYPECREATE, 'min' => 250, 'gas' => 150, 'sup' => 3),
		0x090D00 => array('desc' => 'builds a Warp prism', 'name' => 'Warp prism', 'type' => SC2_TYPEUNIT, 'subtype' => SC2_SUBTYPECREATE, 'min' => 200, 'gas' => 0, 'sup' => 1),
		0x090D01 => array('desc' => 'builds an Observer', 'name' => 'Observer', 'type' => SC2_TYPEUNIT, 'subtype' => SC2_SUBTYPECREATE, 'min' => 50, 'gas' => 100, 'sup' => 1),
		0x090D02 => array('desc' => 'builds a Colossus', 'name' => 'Colossus', 'type' => SC2_TYPEUNIT, 'subtype' => SC2_SUBTYPECREATE, 'min' => 300, 'gas' => 200, 'sup' => 6),
		0x090D03 => array('desc' => 'builds an Immortal', 'name' => 'Immortal', 'type' => SC2_TYPEUNIT, 'subtype' => SC2_SUBTYPECREATE, 'min' => 250, 'gas' => 100, 'sup' => 4),
		0x090E00 => array('desc' => 'trains a Probe', 'name' => 'Probe', 'type' => SC2_TYPEWORKER, 'subtype' => SC2_SUBTYPECREATE, 'min' => 50, 'gas' => 0, 'sup' => 1),
		0x090F00 => array('desc' => 'uses Psionic storm (High templar)', 'name' => 'Psionic storm (High templar)', 'type' => SC2_TYPEABILITY),
		0x0A0200 => array('desc' => 'builds an Interceptor (Carrier)', 'name' => 'Interceptor (Carrier)', 'type' => SC2_TYPEABILITY, 'min' => 25),
		0x0A0300 => array('desc' => 'researches Ground weapons level 1', 'name' => 'Ground weapons L1', 'type' => SC2_TYPEUPGRADE, 'subtype' => SC2_SUBTYPECREATE, 'min' => 100, 'gas' => 100),
		0x0A0301 => array('desc' => 'researches Ground weapons level 2', 'name' => 'Ground weapons L2', 'type' => SC2_TYPEUPGRADE, 'subtype' => SC2_SUBTYPECREATE, 'min' => 175, 'gas' => 175),
		0x0A0302 => array('desc' => 'researches Ground weapons level 3', 'name' => 'Ground weapons L3', 'type' => SC2_TYPEUPGRADE, 'subtype' => SC2_SUBTYPECREATE, 'min' => 250, 'gas' => 250),
		0x0A0303 => array('desc' => 'researches Ground armor level 1', 'name' => 'Ground armor L1', 'type' => SC2_TYPEUPGRADE, 'subtype' => SC2_SUBTYPECREATE, 'min' => 100, 'gas' => 100),
		0x0A0304 => array('desc' => 'researches Ground armor level 2', 'name' => 'Ground armor L2', 'type' => SC2_TYPEUPGRADE, 'subtype' => SC2_SUBTYPECREATE, 'min' => 175, 'gas' => 175),
		0x0A0305 => array('desc' => 'researches Ground armor level 3', 'name' => 'Ground armor L3', 'type' => SC2_TYPEUPGRADE, 'subtype' => SC2_SUBTYPECREATE, 'min' => 225, 'gas' => 225),
		0x0A0306 => array('desc' => 'researches Shields level 1', 'name' => 'Shields L1', 'type' => SC2_TYPEUPGRADE, 'subtype' => SC2_SUBTYPECREATE, 'min' => 200, 'gas' => 200),
		0x0A0307 => array('desc' => 'researches Shields level 2', 'name' => 'Shields L2', 'type' => SC2_TYPEUPGRADE, 'subtype' => SC2_SUBTYPECREATE, 'min' => 300, 'gas' => 300),
		0x0A0308 => array('desc' => 'researches Shields level 3', 'name' => 'Shields L3', 'type' => SC2_TYPEUPGRADE, 'subtype' => SC2_SUBTYPECREATE, 'min' => 400, 'gas' => 400),
		0x0A0401 => array('desc' => 'researches Gravitic boosters', 'name' => 'Gravitic boosters', 'type' => SC2_TYPEUPGRADE, 'subtype' => SC2_SUBTYPECREATE, 'min' => 100, 'gas' => 100),
		0x0A0402 => array('desc' => 'researches Gravitic drive', 'name' => 'Gravitic drive', 'type' => SC2_TYPEUPGRADE, 'subtype' => SC2_SUBTYPECREATE, 'min' => 100, 'gas' => 100),
		0x0A0405 => array('desc' => 'researches Extended thermal lance', 'name' => 'Extended thermal lance', 'type' => SC2_TYPEUPGRADE, 'subtype' => SC2_SUBTYPECREATE, 'min' => 200, 'gas' => 200),
		0x0A0500 => array('desc' => 'researches Khaydarin amulet', 'name' => 'Khaydarin amulet', 'type' => SC2_TYPEUPGRADE, 'subtype' => SC2_SUBTYPECREATE, 'min' => 150, 'gas' => 150),
		0x0A0504 => array('desc' => 'researches Psionic storm', 'name' => 'Psionic storm', 'type' => SC2_TYPEUPGRADE, 'subtype' => SC2_SUBTYPECREATE, 'min' => 200, 'gas' => 200),
		0x0C0500 => array('desc' => 'warps in a Zealot (Warp gate)', 'name' => 'Zealot', 'type' => SC2_TYPEUNIT, 'subtype' => SC2_SUBTYPECREATE, 'min' => 100, 'gas' => 0, 'sup' => 2),
		0x0C0501 => array('desc' => 'warps in a Stalker (Warp gate)', 'name' => 'Stalker', 'type' => SC2_TYPEUNIT, 'subtype' => SC2_SUBTYPECREATE, 'min' => 125, 'gas' => 50, 'sup' => 2),
		0x0C0503 => array('desc' => 'warps in a High templar (Warp gate)', 'name' => 'High templar', 'type' => SC2_TYPEUNIT, 'subtype' => SC2_SUBTYPECREATE, 'min' => 50, 'gas' => 150, 'sup' => 2),
		0x0C0504 => array('desc' => 'warps in a Dark templar (Warp gate)', 'name' => 'Dark templar', 'type' => SC2_TYPEUNIT, 'subtype' => SC2_SUBTYPECREATE, 'min' => 125, 'gas' => 125, 'sup' => 2),
		0x0C0505 => array('desc' => 'warps in a Sentry (Warp gate)', 'name' => 'Sentry', 'type' => SC2_TYPEUNIT, 'subtype' => SC2_SUBTYPECREATE, 'min' => 50, 'gas' => 100, 'sup' => 2),
		0x0C0900 => array('desc' => 'uses Blink (Stalker)', 'name' => 'Blink (Stalker)', 'type' => SC2_TYPEABILITY),
		0x0D0800 => array('desc' => 'uses Force field (Sentry)', 'name' => 'Force field (Sentry)', 'type' => SC2_TYPEABILITY),
		0x0D0900 => array('desc' => 'switches to Phasing mode (Warp prism)', 'name' => 'Phasing mode (Warp prism)', 'type' => SC2_TYPEABILITY),
		0x0D0A00 => array('desc' => 'switches to Transport mode (Warp prism)', 'name' => 'Transport mode (Warp prism)', 'type' => SC2_TYPEABILITY),
		0x0D0C00 => array('desc' => 'researches Air weapons level 1', 'name' => 'Air weapons L1', 'type' => SC2_TYPEUPGRADE, 'subtype' => SC2_SUBTYPECREATE, 'min' => 100, 'gas' => 100),
		0x0D0C01 => array('desc' => 'researches Air weapons level 2', 'name' => 'Air weapons L2', 'type' => SC2_TYPEUPGRADE, 'subtype' => SC2_SUBTYPECREATE, 'min' => 175, 'gas' => 175),
		0x0D0C02 => array('desc' => 'researches Air weapons level 3', 'name' => 'Air weapons L3', 'type' => SC2_TYPEUPGRADE, 'subtype' => SC2_SUBTYPECREATE, 'min' => 250, 'gas' => 250),
		0x0D0C03 => array('desc' => 'researches Air armor level 1', 'name' => 'Air armor L1', 'type' => SC2_TYPEUPGRADE, 'subtype' => SC2_SUBTYPECREATE, 'min' => 150, 'gas' => 150),
		0x0D0C04 => array('desc' => 'researches Air armor level 2', 'name' => 'Air armor L2', 'type' => SC2_TYPEUPGRADE, 'subtype' => SC2_SUBTYPECREATE, 'min' => 225, 'gas' => 225),
		0x0D0C05 => array('desc' => 'researches Air armor level 3', 'name' => 'Air armor L3', 'type' => SC2_TYPEUPGRADE, 'subtype' => SC2_SUBTYPECREATE, 'min' => 300, 'gas' => 300),
		0x0D0C06 => array('desc' => 'researches Warp gate', 'name' => 'Warp gate', 'type' => SC2_TYPEUPGRADE, 'subtype' => SC2_SUBTYPECREATE, 'min' => 50, 'gas' => 50),
		0x0D0C09 => array('desc' => 'researches Hallucination', 'name' => 'Hallucination', 'type' => SC2_TYPEUPGRADE, 'subtype' => SC2_SUBTYPECREATE, 'min' => 100, 'gas' => 100),
		0x0D0D00 => array('desc' => 'researches Charge', 'name' => 'Charge', 'type' => SC2_TYPEUPGRADE, 'subtype' => SC2_SUBTYPECREATE, 'min' => 200, 'gas' => 200),
		0x0D0D01 => array('desc' => 'researches Blink', 'name' => 'Blink', 'type' => SC2_TYPEUPGRADE, 'subtype' => SC2_SUBTYPECREATE, 'min' => 150, 'gas' => 150),
		0x0D0400 => array('desc' => 'transforms to Warp gate (Gateway)', 'name' => 'transform to Warp gate (Gateway)', 'type' => SC2_TYPEBUILDINGUPGRADE),
		0x0D0500 => array('desc' => 'transforms to Gateway (Warp gate)', 'name' => 'transform to Gateway (Warp gate)', 'type' => SC2_TYPEBUILDINGUPGRADE),
		0x0E0200 => array('desc' => 'uses Vortex (Mothership)', 'name' => 'Vortex (Mothership)', 'type' => SC2_TYPEABILITY),
		0x0F0B00 => array('desc' => 'warps in an Archon', 'name' => 'Archon', 'type' => SC2_TYPEUNIT, 'subtype' => SC2_SUBTYPECREATE),
		0x0F0E00 => array('desc' => 'uses Charge (Zealot)', 'name' => 'Charge (Zealot)', 'type' => SC2_TYPEABILITY),

		// zerg
		0x030000 => array('desc' => 'uses Corruption (Corruptor)', 'name' => 'Corruption (Corruptor)', 'type' => SC2_TYPEABILITY),
		0x030400 => array('desc' => 'uses Explode (Baneling)', 'name' => 'Explode (Baneling)', 'type' => SC2_TYPEABILITY),
		0x030600 => array('desc' => 'uses Fungal growth (Infestor)', 'name' => 'Fungal growth (Infestor)', 'type' => SC2_TYPEABILITY),
		0x030900 => array('desc' => 'morphs into a Baneling (Zergling)', 'name' => 'Baneling', 'type' => SC2_TYPEUNIT, 'subtype' => SC2_SUBTYPECREATE, 'min' => 25, 'gas' => 25),
		0x040F00 => array('desc' => 'uses Spawn changeling (Overseer)', 'name' => 'Changeling', 'type' => SC2_TYPEABILITY),
		0x050A01 => array('desc' => 'sets worker rally point (Hatchery)', 'name' => 'worker rally point (Hatchery)', 'type' => SC2_TYPEGEN),
		0x050A00 => array('desc' => 'sets rally point (Hatchery)', 'name' => 'rally point (Hatchery)', 'type' => SC2_TYPEGEN),
		0x050B01 => array('desc' => 'researches Glial reconstitution', 'name' => 'Glial reconstitution', 'type' => SC2_TYPEUPGRADE, 'subtype' => SC2_SUBTYPECREATE, 'min' => 100, 'gas' => 100),
		0x050B02 => array('desc' => 'researches Tunneling claws', 'name' => 'Tunneling claws', 'type' => SC2_TYPEUPGRADE, 'subtype' => SC2_SUBTYPECREATE, 'min' => 150, 'gas' => 150),
		0x050C00 => array('desc' => 'uses Attack building (Baneling)', 'name' => 'Attack building (Baneling)', 'type' => SC2_TYPEABILITY),
		0x050D00 => array('desc' => 'uses Spawn infested terran (Overseer)', 'name' => 'Infested terran', 'type' => SC2_TYPEABILITY),
		0x050E00 => array('desc' => 'uses Neural parasite (Infestor)', 'name' => 'Neural parasite (Infestor)', 'type' => SC2_TYPEABILITY),
		0x050F00 => array('desc' => 'uses Spawn larvae (Queen)', 'name' => 'Spawn larvae (Queen)', 'type' => SC2_TYPEABILITY),
		0x060A00 => array('desc' => 'cancels a build in progress (Overlord)', 'name' => 'cancel (Overlord)', 'type' => SC2_TYPEGEN, 'subtype' => SC2_SUBTYPECANCEL), // medivac
		0x060A01 => array('desc' => 'cancels a build in progress (Roach)', 'name' => 'cancel (Roach)', 'type' => SC2_TYPEGEN, 'subtype' => SC2_SUBTYPECANCEL), // medivac
		0x060502 => array('desc' => 'researches Chitinous plating', 'name' => 'Chitinous plating', 'type' => SC2_TYPEUPGRADE, 'subtype' => SC2_SUBTYPECREATE, 'min' => 150, 'gas' => 150),
		0x0A0600 => array('desc' => 'builds a Hatchery', 'name' => 'Hatchery', 'type' => SC2_TYPEBUILDING, 'subtype' => SC2_SUBTYPECREATE, 'min' => 300, 'gas' => 0),
		0x0A0602 => array('desc' => 'builds an Extractor', 'name' => 'Extractor', 'type' => SC2_TYPEBUILDING, 'subtype' => SC2_SUBTYPECREATE, 'min' => 200, 'gas' => 0),
		0x0A0603 => array('desc' => 'builds a Spawning pool', 'name' => 'Spawning pool', 'type' => SC2_TYPEBUILDING, 'subtype' => SC2_SUBTYPECREATE, 'min' => 200, 'gas' => 0),
		0x0A0604 => array('desc' => 'builds an Evolution chamber', 'name' => 'Evolution chamber', 'type' => SC2_TYPEBUILDING, 'subtype' => SC2_SUBTYPECREATE, 'min' => 75, 'gas' => 0),
		0x0A0605 => array('desc' => 'builds a Hydralisk den', 'name' => 'Hydralisk den', 'type' => SC2_TYPEBUILDING, 'subtype' => SC2_SUBTYPECREATE, 'min' => 100, 'gas' => 100),
		0x0A0606 => array('desc' => 'builds a Spire', 'name' => 'Spire', 'type' => SC2_TYPEBUILDING, 'subtype' => SC2_SUBTYPECREATE, 'min' => 200, 'gas' => 200),
		0x0A0607 => array('desc' => 'builds an Ultralisk cavern', 'name' => 'Ultralisk cavern', 'type' => SC2_TYPEBUILDING, 'subtype' => SC2_SUBTYPECREATE, 'min' => 150, 'gas' => 200),
		0x0A0608 => array('desc' => 'builds an Infestation pit', 'name' => 'Infestation pit', 'type' => SC2_TYPEBUILDING, 'subtype' => SC2_SUBTYPECREATE, 'min' => 100, 'gas' => 100),
		0x0A0609 => array('desc' => 'builds a Nydus network', 'name' => 'Nydus network', 'type' => SC2_TYPEBUILDING, 'subtype' => SC2_SUBTYPECREATE, 'min' => 150, 'gas' => 200),
		0x0A060A => array('desc' => 'builds a Baneling nest', 'name' => 'Baneling nest', 'type' => SC2_TYPEBUILDING, 'subtype' => SC2_SUBTYPECREATE, 'min' => 100, 'gas' => 50),
		0x0A060D => array('desc' => 'builds a Roach warren', 'name' => 'Roach warren', 'type' => SC2_TYPEBUILDING, 'subtype' => SC2_SUBTYPECREATE, 'min' => 150, 'gas' => 0),
		0x0A060E => array('desc' => 'builds a Spine crawler', 'name' => 'Spine crawler', 'type' => SC2_TYPEBUILDING, 'subtype' => SC2_SUBTYPECREATE, 'min' => 100, 'gas' => 0),
		0x0A060F => array('desc' => 'builds a Spore crawler', 'name' => 'Spore crawler', 'type' => SC2_TYPEBUILDING, 'subtype' => SC2_SUBTYPECREATE, 'min' => 75, 'gas' => 0),
		0x0A0701 => array('desc' => 'returns cargo (Drone)', 'name' => 'return cargo (Drone)', 'type' => SC2_TYPEGEN),
		0x0A0800 => array('desc' => 'researches Melee attacks level 1', 'name' => 'Melee attacks L1', 'type' => SC2_TYPEUPGRADE, 'subtype' => SC2_SUBTYPECREATE, 'min' => 100, 'gas' => 100),
		0x0A0801 => array('desc' => 'researches Melee attacks level 2', 'name' => 'Melee attacks L2', 'type' => SC2_TYPEUPGRADE, 'subtype' => SC2_SUBTYPECREATE, 'min' => 175, 'gas' => 175),
		0x0A0802 => array('desc' => 'researches Melee attacks level 3', 'name' => 'Melee attacks L3', 'type' => SC2_TYPEUPGRADE, 'subtype' => SC2_SUBTYPECREATE, 'min' => 250, 'gas' => 250),
		0x0A0803 => array('desc' => 'researches Ground carapace level 1', 'name' => 'Ground carapace L1', 'type' => SC2_TYPEUPGRADE, 'subtype' => SC2_SUBTYPECREATE, 'min' => 150, 'gas' => 150),
		0x0A0804 => array('desc' => 'researches Ground carapace level 2', 'name' => 'Ground carapace L2', 'type' => SC2_TYPEUPGRADE, 'subtype' => SC2_SUBTYPECREATE, 'min' => 225, 'gas' => 225),
		0x0A0805 => array('desc' => 'researches Ground carapace level 3', 'name' => 'Ground carapace L3', 'type' => SC2_TYPEUPGRADE, 'subtype' => SC2_SUBTYPECREATE, 'min' => 300, 'gas' => 300),
		0x0A0806 => array('desc' => 'researches Missile attacks level 1', 'name' => 'Missile attacks L1', 'type' => SC2_TYPEUPGRADE, 'subtype' => SC2_SUBTYPECREATE, 'min' => 100, 'gas' => 100),
		0x0A0807 => array('desc' => 'researches Missile attacks level 2', 'name' => 'Missile attacks L2', 'type' => SC2_TYPEUPGRADE, 'subtype' => SC2_SUBTYPECREATE, 'min' => 175, 'gas' => 175),
		0x0A0808 => array('desc' => 'researches Missile attacks level 3', 'name' => 'Missile attacks L2', 'type' => SC2_TYPEUPGRADE, 'subtype' => SC2_SUBTYPECREATE, 'min' => 250, 'gas' => 250),
		0x0A080A => array('desc' => 'researches Burrow', 'name' => 'Burrow', 'type' => SC2_TYPEUPGRADE, 'subtype' => SC2_SUBTYPECREATE, 'min' => 100, 'gas' => 100),
		0x0A0900 => array('desc' => 'mutates into Lair (Hatchery)', 'name' => 'mutate into Lair (Hatchery)', 'type' => SC2_TYPEBUILDINGUPGRADE, 'min' => 150, 'gas' => 100),
		0x0A0901 => array('desc' => 'cancels a build in progress (Hatchery)', 'name' => 'cancel (Hatchery)', 'type' => SC2_TYPEGEN, 'subtype' => SC2_SUBTYPECANCEL),
		0x0A0A00 => array('desc' => 'mutates into Hive (Lair)', 'name' => 'mutate into Hive (Lair)', 'type' => SC2_TYPEBUILDINGUPGRADE, 'min' => 200, 'gas' => 150),
		0x0A0B00 => array('desc' => 'mutates into Greater spire (Spire)', 'name' => 'mutate into Greater spire (Spire)', 'type' => SC2_TYPEBUILDINGUPGRADE, 'min' => 200, 'gas' => 150),
		0x0A0C01 => array('desc' => 'researches Pneumatized carapace', 'name' => 'Pneumatized carapace', 'type' => SC2_TYPEUPGRADE, 'subtype' => SC2_SUBTYPECREATE, 'min' => 100, 'gas' => 100),
		0x0A0C02 => array('desc' => 'researches Ventral sacs', 'name' => 'Ventral sacs', 'type' => SC2_TYPEUPGRADE, 'subtype' => SC2_SUBTYPECREATE, 'min' => 200, 'gas' => 200),
		0x0A0D00 => array('desc' => 'researches Adrenal glands', 'name' => 'Adrenal glands', 'type' => SC2_TYPEUPGRADE, 'subtype' => SC2_SUBTYPECREATE, 'min' => 200, 'gas' => 200),
		0x0A0D01 => array('desc' => 'researches Metabolic boost', 'name' => 'Metabolic boost', 'type' => SC2_TYPEUPGRADE, 'subtype' => SC2_SUBTYPECREATE, 'min' => 100, 'gas' => 100),
		0x0A0E02 => array('desc' => 'researches Grooved spines', 'name' => 'Grooved spines', 'type' => SC2_TYPEUPGRADE, 'subtype' => SC2_SUBTYPECREATE, 'min' => 150, 'gas' => 150),
		0x0A0F00 => array('desc' => 'researches Flyer attacks level 1', 'name' => 'Flyer attacks L1', 'type' => SC2_TYPEUPGRADE, 'subtype' => SC2_SUBTYPECREATE, 'min' => 100, 'gas' => 100),
		0x0A0F01 => array('desc' => 'researches Flyer attacks level 2', 'name' => 'Flyer attacks L2', 'type' => SC2_TYPEUPGRADE, 'subtype' => SC2_SUBTYPECREATE, 'min' => 175, 'gas' => 175),
		0x0A0F02 => array('desc' => 'researches Flyer attacks level 3', 'name' => 'Flyer attacks L3', 'type' => SC2_TYPEUPGRADE, 'subtype' => SC2_SUBTYPECREATE, 'min' => 250, 'gas' => 250),
		0x0A0F03 => array('desc' => 'researches Flyer carapace level 1', 'name' => 'Flyer carapace L1', 'type' => SC2_TYPEUPGRADE, 'subtype' => SC2_SUBTYPECREATE, 'min' => 150, 'gas' => 150),
		0x0A0F04 => array('desc' => 'researches Flyer carapace level 2', 'name' => 'Flyer carapace L2', 'type' => SC2_TYPEUPGRADE, 'subtype' => SC2_SUBTYPECREATE, 'min' => 225, 'gas' => 225),
		0x0A0F05 => array('desc' => 'researches Flyer carapace level 2', 'name' => 'Flyer carapace L2', 'type' => SC2_TYPEUPGRADE, 'subtype' => SC2_SUBTYPECREATE, 'min' => 300, 'gas' => 300),
		0x0B0000 => array('desc' => 'trains a Drone', 'name' => 'Drone', 'type' => SC2_TYPEWORKER, 'subtype' => SC2_SUBTYPECREATE, 'min' => 50, 'gas' => 0, 'sup' => 1),
		0x0B0001 => array('desc' => 'trains a pair of Zerglings', 'name' => 'Zergling x 2', 'type' => SC2_TYPEWORKER, 'subtype' => SC2_SUBTYPECREATE, 'min' => 50, 'gas' => 0, 'sup' => 1),
		0x0B0002 => array('desc' => 'trains an Overlord', 'name' => 'Overlord', 'type' => SC2_TYPEUNIT, 'subtype' => SC2_SUBTYPECREATE, 'min' => 100, 'gas' => 0, 'sup' => 0),
		0x0B0003 => array('desc' => 'trains a Hydralisk', 'name' => 'Hydralisk', 'type' => SC2_TYPEUNIT, 'subtype' => SC2_SUBTYPECREATE, 'min' => 100, 'gas' => 50, 'sup' => 2),
		0x0B0004 => array('desc' => 'trains a Mutalisk', 'name' => 'Mutalisk', 'type' => SC2_TYPEUNIT, 'subtype' => SC2_SUBTYPECREATE, 'min' => 100, 'gas' => 100, 'sup' => 2),
		0x0B0006 => array('desc' => 'trains an Ultralisk', 'name' => 'Ultralisk', 'type' => SC2_TYPEUNIT, 'subtype' => SC2_SUBTYPECREATE, 'min' => 300, 'gas' => 200, 'sup' => 6),
		0x0B0009 => array('desc' => 'trains a Roach', 'name' => 'Roach', 'type' => SC2_TYPEUNIT, 'subtype' => SC2_SUBTYPECREATE, 'min' => 75, 'gas' => 25, 'sup' => 2),
		0x0B000A => array('desc' => 'trains an Infestor', 'name' => 'Infestor', 'type' => SC2_TYPEUNIT, 'subtype' => SC2_SUBTYPECREATE, 'min' => 100, 'gas' => 150, 'sup' => 2),
		0x0B000B => array('desc' => 'trains a Corruptor', 'name' => 'Corruptor', 'type' => SC2_TYPEUNIT, 'subtype' => SC2_SUBTYPECREATE, 'min' => 150, 'gas' => 100, 'sup' => 2),
		0x0B0100 => array('desc' => 'morphs into a Brood lord (Corruptor)', 'name' => 'Brood lord', 'type' => SC2_TYPEUNIT, 'subtype' => SC2_SUBTYPECREATE, 'min' => 150, 'gas' => 150, 'sup' => 2),
		0x0B0200 => array('desc' => 'uses Burrow (Baneling)', 'name' => 'Burrow (Baneling)', 'type' => SC2_TYPEABILITY),
		0x0B0300 => array('desc' => 'uses Unburrow (Baneling)', 'name' => 'Unburrow (Baneling)', 'type' => SC2_TYPEABILITY),
		0x0B0400 => array('desc' => 'uses Burrow (Drone)', 'name' => 'Burrow (Drone)', 'type' => SC2_TYPEABILITY),
		0x0B0500 => array('desc' => 'uses Unburrow (Drone)', 'name' => 'Unburrow (Drone)', 'type' => SC2_TYPEABILITY),
		0x0B0600 => array('desc' => 'uses Burrow (Hydralisk)', 'name' => 'Burrow (Hydralisk)', 'type' => SC2_TYPEABILITY),
		0x0B0700 => array('desc' => 'uses Unburrow (Hydralisk)', 'name' => 'Unburrow (Hydralisk)', 'type' => SC2_TYPEABILITY),
		0x0B0800 => array('desc' => 'uses Burrow (Roach)', 'name' => 'Burrow (Roach)', 'type' => SC2_TYPEABILITY),
		0x0B0900 => array('desc' => 'uses Unburrow (Roach)', 'name' => 'Unburrow (Roach)', 'type' => SC2_TYPEABILITY),
		0x0B0A00 => array('desc' => 'uses Burrow (Zergling)', 'name' => 'Burrow (Zergling)', 'type' => SC2_TYPEABILITY),
		0x0B0B00 => array('desc' => 'uses Unburrow (Zergling)', 'name' => 'Unburrow (Zergling)', 'type' => SC2_TYPEABILITY),
		0x0C0200 => array('desc' => 'loads units (Overlord)', 'name' => 'load units (Overlord)', 'type' => SC2_TYPEGEN),
		0x0C0202 => array('desc' => 'unloads all (Overlord)', 'name' => 'unload all (Overlord)', 'type' => SC2_TYPEGEN),
		0x0C0600 => array('desc' => 'uses Burrow (Queen)', 'name' => 'Burrow (Queen)', 'type' => SC2_TYPEABILITY),
		0x0C0700 => array('desc' => 'uses Unburrow (Queen)', 'name' => 'Unburrow (Queen)', 'type' => SC2_TYPEABILITY),
		0x0C0800 => array('desc' => 'loads units (Nydus network)', 'name' => 'load units (Nydus network)', 'type' => SC2_TYPEGEN),
		0x0C0801 => array('desc' => 'unloads all (Nydus network)', 'name' => 'unload all (Nydus network)', 'type' => SC2_TYPEGEN),
		0x0C0A00 => array('desc' => 'uses Burrow (Infestor)', 'name' => 'Burrow (Infestor)', 'type' => SC2_TYPEABILITY),
		0x0C0B00 => array('desc' => 'uses Unburrow (Infestor)', 'name' => 'Unburrow (Infestor)', 'type' => SC2_TYPEABILITY),
		0x0C0C00 => array('desc' => 'morphs into an Overseer (Overlord)', 'name' => 'Overseer', 'type' => SC2_TYPEUNIT, 'subtype' => SC2_SUBTYPECREATE, 'min' => 50, 'gas' => 100),
		0x0C0F02 => array('desc' => 'researches Pathogen glands', 'name' => 'Pathogen glands', 'type' => SC2_TYPEUPGRADE, 'subtype' => SC2_SUBTYPECREATE, 'min' => 150, 'gas' => 150),
		0x0C0F03 => array('desc' => 'researches Neural parasite', 'name' => 'Neural parasite', 'type' => SC2_TYPEUPGRADE, 'subtype' => SC2_SUBTYPECREATE, 'min' => 150, 'gas' => 150),
		0x0D0000 => array('desc' => 'researches Centrifugal hooks', 'name' => 'Centrifugal hooks', 'type' => SC2_TYPEUPGRADE, 'subtype' => SC2_SUBTYPECREATE, 'min' => 150, 'gas' => 150),
		0x0E0300 => array('desc' => 'trains a Queen', 'name' => 'Queen', 'type' => SC2_TYPEWORKER, 'subtype' => SC2_SUBTYPECREATE, 'min' => 150, 'gas' => 0, 'sup' => 2),
		0x0E0500 => array('desc' => 'uses Transfusion (Queen)', 'name' => 'uses Transfusion (Queen)', 'type' => SC2_TYPEABILITY),
		0x0F0300 => array('desc' => 'uses Generate creep (Overlord)', 'name' => 'Generate creep (Overlord)', 'type' => SC2_TYPEABILITY),
		0x0F0301 => array('desc' => 'stops using Generate creep (Overlord)', 'name' => 'stop using Generate creep (Overlord)', 'type' => SC2_TYPEABILITY),
		0x0F0400 => array('desc' => 'uses Spawn creep tumor (Queen)', 'name' => 'Spawn creep tumor (Queen)', 'type' => SC2_TYPEABILITY),
		0x0F0500 => array('desc' => 'uses Uproot (Spine crawler)', 'name' => 'Uproot (Spine crawler)', 'type' => SC2_TYPEABILITY),
		0x0F0600 => array('desc' => 'uses Uproot (Spore crawler)', 'name' => 'Uproot (Spore crawler)', 'type' => SC2_TYPEABILITY),
		0x0F0700 => array('desc' => 'uses Root (Spine crawler)', 'name' => 'Root (Spine crawler)', 'type' => SC2_TYPEABILITY),
		0x0F0800 => array('desc' => 'uses Root (Spore crawler)', 'name' => 'Root (Spore crawler)', 'type' => SC2_TYPEABILITY),
		0x0F0900 => array('desc' => 'uses Spawn creep tumor (Creep tumor)', 'name' => 'Spawn creep tumor (Creep tumor)', 'type' => SC2_TYPEABILITY),
		0x0F0C00 => array('desc' => 'summons Nydus worm (Nydus network)', 'name' => 'summon Nydus worm (Nydus network)', 'type' => SC2_TYPEABILITY, 'min' => 100, 'gas' => 100),
		0x100200 => array('desc' => 'uses Contaminate (Overseer)', 'name' => 'Contaminate (Overseer)', 'type' => SC2_TYPEABILITY),

		// generic

		0x020400 => array('desc' => 'stops', 'name' => 'stop', 'type' => SC2_TYPEGEN),
		0x020600 => array('desc' => 'moves', 'name' => 'move', 'type' => SC2_TYPEGEN),
		0x020601 => array('desc' => 'patrols', 'name' => 'patrol', 'type' => SC2_TYPEGEN),
		0x020602 => array('desc' => 'holds position', 'name' => 'hold position', 'type' => SC2_TYPEGEN),
		0x020603 => array('desc' => 'heals', 'name' => 'heal', 'type' => SC2_TYPEGEN),
		0x020900 => array('desc' => 'attacks', 'name' => 'attack', 'type' => SC2_TYPEGEN),
		0x030100 => array('desc' => 'holds fire', 'name' => 'hold fire', 'type' => SC2_TYPEGEN),
		0x060800 => array('desc' => 'gathers', 'name' => 'gather', 'type' => SC2_TYPEGEN),
		0xFFFF0F => array('desc' => 'right-clicks', 'name' => 'right-click', 'type' => SC2_TYPEGEN)
	);
	public static $ABILITYCODES_16561 = array(
		// terran 
		0x020A00 => array('link' => 0x080A00),
		0x011810 => array('link' => 0x050800), // rally point with action (gather, repair, etc)
		0x01FE01 => array('link' => 0x070E01),
		0x013E01 => array('link' => 0x070E01),
		0x01FE03 => array('link' => 0x070E03),
		0x011820 => array('link' => 0x050800),
		0x013011 => array('link' => 0x070001),
		0x013013 => array('link' => 0x070003),
		0x013022 => array('link' => 0x070002),
		0x011610 => array('link' => 0x050600),
		0x011620 => array('link' => 0x050600), // rally point with action (gather, load into bunker, etc)
		0x020E00 => array('link' => 0x080E00),
		0x031200 => array('link' => 0x0D0300),
		0x020200 => array('link' => 0x080200),
		0x020210 => array('link' => 0x080200),
		0x020E03 => array('link' => 0x080E03),
		0x020E01 => array('link' => 0x080E01),
		0x017011 => array('link' => 0x070009),
		0x017012 => array('link' => 0x07000A),
		0x020201 => array('link' => 0x080201),
		0x020211 => array('link' => 0x080201),
		0x017013 => array('link' => 0x07000B),
		0x017015 => array('link' => 0x07000D),
		0x013010 => array('link' => 0x070000),
		0x020400 => array('link' => 0x080400),
		0x020410 => array('link' => 0x080400), // while floating
		0x020401 => array('link' => 0x080401),
		0x020411 => array('link' => 0x080401), // while floating
		0x020600 => array('link' => 0x080600),
		0x020610 => array('link' => 0x080600), // while floating
		0x020601 => array('link' => 0x080601),
		0x020611 => array('link' => 0x080601), // while floating
		0x013014 => array('link' => 0x070004),
		0x030D00 => array('link' => 0x0C0D00),
		0x013016 => array('link' => 0x070006),
		0x013015 => array('link' => 0x070005),
		0x017010 => array('link' => 0x070008),
		0x017017 => array('link' => 0x07000F),
		0x020500 => array('link' => 0x080500),
		0x020810 => array('link' => 0x080800),
		0x020700 => array('link' => 0x080700),
		0x020910 => array('link' => 0x080900),
		0x020300 => array('link' => 0x080300),
		0x020B10 => array('link' => 0x080B00),
		0x012F00 => array('desc' => 'toggles auto-repair (SCV)', 'name' => 'autorepair (SCV)', 'type' => SC2_TYPEGEN), // scv autorepair
		0x010A20 => array('link' => 0x040A00),
		0x010A10 => array('link' => 0x040A00), // MULE not on mineral patch
		0x030D01 => array('link' => 0x060D01),
		0x012120 => array('link' => 0x060100), 
		0x013A10 => array('link' => 0x070A00), 
		0x020E02 => array('link' => 0x080E02),
		0x031500 => array('link' => 0x0D0600),
		0x031610 => array('link' => 0x0D0700),
		0x021700 => array('link' => 0x090700),
		0x021701 => array('link' => 0x090701),
		0x021300 => array('link' => 0x090300),
		0x021401 => array('link' => 0x090401),
		0x021400 => array('link' => 0x090400),
		0x021402 => array('link' => 0x090402),
		0x021203 => array('link' => 0x090203),
		0x01FF04 => array('link' => 0x070F04),
		0x01FF01 => array('link' => 0x070F01),
		0x020000 => array('link' => 0x080000),
		0x020110 => array('link' => 0x080100),
		0x021501 => array('link' => 0x090501),
		0x021500 => array('link' => 0x090500),
		0x021502 => array('link' => 0x090502),
		0x021602 => array('link' => 0x090602),
		0x021607 => array('link' => 0x090607),
		0x021606 => array('link' => 0x090606),
		0x021603 => array('link' => 0x090603),
		0x021600 => array('link' => 0x090600),
		0x021102 => array('link' => 0x090102),
		0x021106 => array('link' => 0x090106),
		0x021100 => array('link' => 0x090100),
		0x021105 => array('link' => 0x090105),
		0x021101 => array('link' => 0x090101),
		0x021805 => array('link' => 0x090805),
		0x021802 => array('link' => 0x090802),
		0x025803 => array('link' => 0x09080B),
		0x025800 => array('link' => 0x090808),
		0x021103 => array('link' => 0x090103),
		0x021107 => array('link' => 0x090107),
		0x031A00 => array('link' => 0x0D0B00),
		0x031A01 => array('link' => 0x0D0B01),
		0x021806 => array('link' => 0x090806),
		0x021803 => array('link' => 0x090803),
		0x025804 => array('link' => 0x09080C),
		0x025801 => array('link' => 0x090809),
		0x021104 => array('link' => 0x090104),
		0x025100 => array('link' => 0x090108),
		0x021807 => array('link' => 0x090807),
		0x021804 => array('link' => 0x090804),
		0x025805 => array('link' => 0x09080D),
		0x025802 => array('link' => 0x09080A),
		0x021004 => array('link' => 0x090004),
		0x021000 => array('link' => 0x090000),
		0x021002 => array('link' => 0x090002),
		0x021001 => array('link' => 0x090001),
		0x021003 => array('link' => 0x090003),
		0x020F05 => array('link' => 0x080F05),
		0x020F01 => array('link' => 0x080F01),
		0x020F04 => array('link' => 0x080F04),
		0x013500 => array('desc' => 'toggles auto-heal (Medivac)', 'name' => 'autoheal (Medivac)', 'type' => SC2_TYPEGEN),
		0x013600 => array('link' => 0x070600),
		0x013700 => array('link' => 0x070700),
		0x033910 => array('link' => 0x0F0A00),
		0x003D10 => array('link' => 0x030D00),
		0x012F20 => array('link' => 0x060F00),
		0x012220 => array('link' => 0x060200),
		0x010920 => array('link' => 0x040900),
		0x031D10 => array('link' => 0x0D0E00),
		0x013420 => array('link' => 0x070400),
		0x032010 => array('link' => 0x0E0100),
		0x013300 => array('link' => 0x070300),
		0x013301 => array('link' => 0x070301),
		0x013800 => array('link' => 0x070800),
		0x013801 => array('link' => 0x070801),
		0x013B20 => array('link' => 0x070B00),
		0x032E00 => array('link' => 0x070200),
		0x012000 => array('link' => 0x060000),
		0x013200 => array('link' => 0x070200),
		0x031F00 => array('link' => 0x0E0000),
		0x020C00 => array('link' => 0x080C00),
		0x020D00 => array('link' => 0x080D00),
		0x013920 => array('link' => 0x070900),
		0x370003 => array('link' => 0x070903),
		0x013912 => array('link' => 0x070902),
		0x013922 => array('link' => 0x070902),
		0x013C00 => array('link' => 0x070C00),
		0x013D00 => array('link' => 0x070D00),
		0x012B00 => array('link' => 0x0D0301),
		0x012E00 => array('link' => 0x060B01),
		
		//zerg
		0x023000 => array('link' => 0x0B0000),
		0x011A21 => array('link' => 0x050A01),
		0x011A11 => array('link' => 0x050A01),
		0x011A20 => array('link' => 0x050A00),
		0x011A10 => array('link' => 0x050A00),
		0x023002 => array('link' => 0x0B0002),
		0x022613 => array('link' => 0x0A0603),
		0x022622 => array('link' => 0x0A0602),
		0x023001 => array('link' => 0x0B0001),
		0x032200 => array('link' => 0x0E0300),
		0x022614 => array('link' => 0x0A0604),
		0x033310 => array('link' => 0x0F0400),
		0x011F20 => array('link' => 0x050F00),
		0x022900 => array('link' => 0x0A0900),
		0x026617 => array('link' => 0x0A060F),
		0x022610 => array('link' => 0x0A0600),
		0x026615 => array('link' => 0x0A060D),
		0x022C01 => array('link' => 0x0A0C01),
		0x022C03 => array('link' => 0x0A080A),
		0x022C02 => array('link' => 0x0A0C02),
		0x033810 => array('link' => 0x0F0900),
		0x027001 => array('link' => 0x0B0009),
		0x026612 => array('link' => 0x0A060A),
		0x026616 => array('link' => 0x0A060E),
		0x022615 => array('link' => 0x0A0605),
		0x022E02 => array('link' => 0x0A0E02),
		0x023003 => array('link' => 0x0B0003),
		0x026610 => array('link' => 0x0A0608),
		0x022616 => array('link' => 0x0A0606),
		0x030E02 => array('link' => 0x0C0F02),
		0x030E03 => array('link' => 0x0C0F03),
		0x026611 => array('link' => 0x0A0609),
		0x022A00 => array('link' => 0x0A0A00),
		0x011B01 => array('link' => 0x050B01),
		0x011B02 => array('link' => 0x050B02),
		0x030F00 => array('link' => 0x0D0000),
		0x027002 => array('link' => 0x0B000A),
		0x023004 => array('link' => 0x0B0004),
		0x027003 => array('link' => 0x0B000B),
		0x022B00 => array('link' => 0x0A0B00),
		0x022617 => array('link' => 0x0A0607),
		0x033B10 => array('link' => 0x0F0C00),
		0x022800 => array('link' => 0x0A0800),
		0x022806 => array('link' => 0x0A0806),
		0x022803 => array('link' => 0x0A0803),
		0x022F00 => array('link' => 0x0A0F00),
		0x022F03 => array('link' => 0x0A0F03),
		0x003610 => array('link' => 0x030600),
		0x033500 => array('link' => 0x0F0600),
		0x033710 => array('link' => 0x0F0800),
		0x033400 => array('link' => 0x0F0500),
		0x033610 => array('link' => 0x0F0700),
		0x023006 => array('link' => 0x0B0006),
		0x030C00 => array('link' => 0x0C0C00),
		0x023100 => array('link' => 0x0B0100),
		0x003020 => array('link' => 0x030000),
		0x032420 => array('link' => 0x0E0500),
		0x012502 => array('link' => 0x060502),
		0x022801 => array('link' => 0x0A0801),
		0x022807 => array('link' => 0x0A0807),
		0x022804 => array('link' => 0x0A0804),
		0x022F01 => array('link' => 0x0A0F01),
		0x022F04 => array('link' => 0x0A0F04),
		0x022D01 => array('link' => 0x0A0D01),
		0x022D00 => array('link' => 0x0A0D00),
		0x011D10 => array('desc' => 'uses Spawn infested terran (Infestor)', 'name' => 'Infested terran', 'type' => SC2_TYPEABILITY),
		0x022805 => array('link' => 0x0A0805),
		0x026800 => array('link' => 0x0A0808),
		0x022802 => array('link' => 0x0A0802),
		0x022F02 => array('link' => 0x0A0F02),
		0x022F05 => array('link' => 0x0A0F05),
		0x030820 => array('link' => 0x0C0800),
		0x011E20 => array('link' => 0x050E00),
		0x030833 => array('link' => 0x0C0801),
		0x030801 => array('desc' => 'unloads unit (Nydus Worm)', 'name' => 'unload unit (Nydus Worm)', 'type' => SC2_TYPEABILITY),
		0x011610 => array('link' => 0x050600),
		0x010F00 => array('desc' => 'uses Spawn changeling (Infestor)', 'name' => 'Changeling', 'type' => SC2_TYPEABILITY),
		0x040120 => array('link' => 0x100200),
		0x033200 => array('link' => 0x0C0200),
		0x033201 => array('link' => 0x0F0301),
		0x030220 => array('link' => 0x0C0200),
		0x030222 => array('desc' => 'unloads unit (Overlord)', 'name' => 'unload unit (Overlord)', 'type' => SC2_TYPEABILITY),
		0x030233 => array('link' => 0x0C0202),
		0x030212 => array('link' => 0x0C0202),
		0x031000 => array('desc' => 'uses Burrow (Ultralisk)', 'name' => 'Burrow (Ultralisk)', 'type' => SC2_TYPEABILITY),
		0x031100 => array('desc' => 'uses Unburrow (Ultralisk)', 'name' => 'Unburrow (Ultralisk)', 'type' => SC2_TYPEABILITY),
		0x030600 => array('link' => 0x0C0600),
		0x030700 => array('link' => 0x0C0700),
		0x030A00 => array('link' => 0x0C0A00),
		0x030B00 => array('link' => 0x0C0B00),
		0x023400 => array('link' => 0x0B0400),
		0x023500 => array('link' => 0x0B0500),
		0x023600 => array('link' => 0x0B0600),
		0x023700 => array('link' => 0x0B0700),
		0x023800 => array('link' => 0x0B0800),
		0x023900 => array('link' => 0x0B0900),
		0x023A00 => array('link' => 0x0B0A00),
		0x023B00 => array('link' => 0x0B0B00),
		0x003900 => array('link' => 0x030900),
		0x023200 => array('link' => 0x0B0200),
		0x023300 => array('link' => 0x0B0300),
		0x003400 => array('link' => 0x030400),
		0x011C20 => array('link' => 0x050C00),
		0x03F806 => array('desc' => 'cancels build in progress (Creep tumor)', 'name' => 'cancel (Creep tumor)', 'type' => SC2_TYPEABILITY, 'subtype' => SC2_SUBTYPECANCEL),
		0x012A00 => array('desc' => 'cancels morph in progress', 'name' => 'cancel morph', 'type' => SC2_TYPEABILITY, 'subtype' => SC2_SUBTYPECANCEL),
		0x030C01 => array('desc' => 'cancels morph in progress (Overseer)', 'name' => 'cancel (Overseer)', 'type' => SC2_TYPEABILITY, 'subtype' => SC2_SUBTYPECANCEL),
		0x023101 => array('desc' => 'cancels morph in progress (Brood Lord)', 'name' => 'cancel (Brood Lord)', 'type' => SC2_TYPEABILITY, 'subtype' => SC2_SUBTYPECANCEL),
		
		//protoss
		0x011A10 => array('link' => 0x050900),
		0x011A20 => array('link' => 0x050900), // rally point with action
		0x021E00 => array('link' => 0x090E00),
		0x021911 => array('link' => 0x090901),
		0x021922 => array('link' => 0x090902),
		0x021913 => array('link' => 0x090903),
		0x012420 => array('link' => 0x060400),
		0x021B00 => array('link' => 0x090B00),
		0x025916 => array('link' => 0x09090E),
		0x021914 => array('link' => 0x090904),
		0x021B05 => array('link' => 0x090B05),
		0x021B01 => array('link' => 0x090B01),
		0x021910 => array('link' => 0x090900),
		0x021917 => array('link' => 0x090907),
		0x031B06 => array('link' => 0x0D0C06),
		0x021916 => array('link' => 0x090906),
		0x025911 => array('link' => 0x090909),
		0x025915 => array('link' => 0x09090D),
		0x025912 => array('link' => 0x09090A),
		0x021915 => array('link' => 0x090905),
		0x025914 => array('link' => 0x09090C),
		0x025913 => array('link' => 0x09090B),
		0x021B03 => array('link' => 0x090B03),
		0x021B04 => array('link' => 0x090B04),
		0x031300 => array('link' => 0x0D0400),
		0x030510 => array('link' => 0x0C0500),
		0x030515 => array('link' => 0x0C0505),
		0x030511 => array('link' => 0x0C0501),
		0x030513 => array('link' => 0x0C0503),
		0x030514 => array('link' => 0x0C0504),
		0x031400 => array('link' => 0x0D0500),
		0x003A00 => array('link' => 0x030A00),
		0x022300 => array('link' => 0x0A0300),
		0x022303 => array('link' => 0x0A0303),
		0x022306 => array('link' => 0x0A0306),
		0x031B00 => array('link' => 0x0D0C00),
		0x031B03 => array('link' => 0x0D0C03),
		0x035B01 => array('link' => 0x0D0C09),
		0x022504 => array('link' => 0x0A0504),
		0x022500 => array('link' => 0x0A0500),
		0x003500 => array('link' => 0x030500),
		0x003501 => array('link' => 0x030501),
		0x031C00 => array('link' => 0x0D0D00),
		0x031C01 => array('link' => 0x0D0D01),
		0x021C00 => array('link' => 0x090C00),
		0x021C04 => array('link' => 0x090C04),
		0x021C02 => array('link' => 0x090C02),
		0x021D01 => array('link' => 0x090D01),
		0x021D00 => array('link' => 0x090D00),
		0x021D03 => array('link' => 0x090D03),
		0x021D02 => array('link' => 0x090D02),
		0x022301 => array('link' => 0x0A0301),
		0x022304 => array('link' => 0x0A0304),
		0x022307 => array('link' => 0x0A0307),
		0x031B01 => array('link' => 0x0D0C01),
		0x031B04 => array('link' => 0x0D0C04),
		0x022401 => array('link' => 0x0A0401),
		0x022402 => array('link' => 0x0A0402),
		0x022405 => array('link' => 0x0A0405),
		0x021F10 => array('link' => 0x090F00),
		0x003B20 => array('link' => 0x030B00),
		0x003C10 => array('link' => 0x030C00),
		0x032110 => array('link' => 0x0E0200),
		0x033A00 => array('link' => 0x0F0B00),
		0x031710 => array('link' => 0x0D0800),
		0x003700 => array('link' => 0x030700),
		0x010300 => array('link' => 0x040300),
		0x010700 => array('link' => 0x040700),
		0x010400 => array('link' => 0x040400),
		0x010100 => array('link' => 0x040100),
		0x010000 => array('link' => 0x040000),
		0x003E00 => array('link' => 0x030E00),
		0x010500 => array('link' => 0x040500),
		0x022302 => array('link' => 0x0A0302),
		0x022305 => array('link' => 0x0A0305),
		0x026300 => array('link' => 0x0A0308),
		0x031B02 => array('link' => 0x0D0C02),
		0x031B05 => array('link' => 0x0D0C05),
		0x030910 => array('link' => 0x0C0900),
		0x033D20 => array('link' => 0x0F0E00),
		0x022200 => array('link' => 0x0A0200),
		0x031800 => array('link' => 0x0D0900),
		0x031900 => array('link' => 0x0D0A00),
		0x010B20 => array('link' => 0x040B00),
		0x010200 => array('link' => 0x040200),
		0x010600 => array('link' => 0x040600),
		0x003F00 => array('link' => 0x030F00),
		0x021A20 => array('desc' => 'loads unit (Warp prism)', 'name' => 'load unit (Warp prism)', 'type' => SC2_TYPEGEN),
		0x021A22 => array('desc' => 'unloads all (Warp prism)', 'name' => 'unload all (Warp prism)', 'type' => SC2_TYPEGEN),
		0x021A12 => array('desc' => 'unloads all (Warp prism)', 'name' => 'unload all (Warp prism)', 'type' => SC2_TYPEGEN),
		
		0x002610 => array('link' => 0x080A00),
		0x002400 => array('link' => 0x080A00),

		
		//generic
		0x012720 => array('link' => 0x060800),
		0x012801 => array('link' => 0x060800),
		0x002920 => array('link' => 0x020900),
		0x002910 => array('link' => 0x020900),
		0x002611 => array('link' => 0x020601),
		0x002610 => array('link' => 0x020600),
		0x002400 => array('link' => 0x020400),
		0x002602 => array('link' => 0x020900),
		0x002613 => array('desc' => 'scan moves (attack)', 'name' => 'scan move', 'type' => SC2_TYPEGEN),
		0x022701 => array('desc' => 'returns cargo', 'name' => 'return cargo', 'type' => SC2_TYPEGEN),
		0x01F006 => array('desc' => 'continues construction', 'name' => 'construct', 'type' => SC2_TYPEGEN)
	);
	
	
	public static $UNITCODES = array (

		//Generic
		0x00AF01 => array('name' => "Xel'Naga Tower", 'type' => SC2_TYPEGEN, 'upgrades_to' => array()),
		0x010501 => array('name' => "Destructible Rocks (Line)", 'type' => SC2_TYPEGEN, 'upgrades_to' => array()),
		0x010401 => array('name' => "Destructible Rocks (Round)", 'type' => SC2_TYPEGEN, 'upgrades_to' => array()),
		0x00F001 => array('name' => "Mineral Field", 'type' => SC2_TYPEGEN, 'upgrades_to' => array()),
		0x00AD01 => array('name' => "Rich Mineral Field", 'type' => SC2_TYPEGEN, 'upgrades_to' => array()),

		//Zerg
		0x008201 => array('name' => "Lair", 'type' => SC2_TYPEBUILDING, 'upgrades_to' => array(0x008301)),
		0x008901 => array('name' => "Hydralisk", 'type' => SC2_TYPEUNIT, 'upgrades_to' => array(0x009301)),
		0x009501 => array('name' => "Burrowed Zergling", 'type' => SC2_TYPEUNIT, 'upgrades_to' => array(0x008701)),
		0x009E01 => array('name' => "Overseer Cocoon", 'type' => SC2_TYPEUNIT, 'upgrades_to' => array(0x009F01)),
		0x00B301 => array('name' => "Larva", 'type' => SC2_TYPEUNIT, 'upgrades_to' => array(0x008501)),
		0x009401 => array('name' => "Burrowed Roach", 'type' => SC2_TYPEUNIT, 'upgrades_to' => array(0x008C01)),
		0x007501 => array('name' => "Immature Creep Tumor", 'type' => SC2_TYPEABILITY, 'upgrades_to' => array(0x00A701)),
		0x008101 => array('name' => "Spore Crawler", 'type' => SC2_TYPEBUILDING, 'upgrades_to' => array()),
		0x007401 => array('name' => "Hatchery", 'type' => SC2_TYPEBUILDING, 'upgrades_to' => array(0x008201)),
		0x009D01 => array('name' => "Burrowed Infestor", 'type' => SC2_TYPEUNIT, 'upgrades_to' => array(0x008D01)),
		0x007801 => array('name' => "Evolution Chamber", 'type' => SC2_TYPEBUILDING, 'upgrades_to' => array()),
		0x009B01 => array('name' => "Burrowed Queen", 'type' => SC2_TYPEUNIT, 'upgrades_to' => array(0x009C01)),
		0x009101 => array('name' => "Burrowed Baneling", 'type' => SC2_TYPEUNIT, 'upgrades_to' => array(0x002201)),
		0x008601 => array('name' => "Drone", 'type' => SC2_TYPEWORKER, 'upgrades_to' => array()),
		0x008701 => array('name' => "Zergling", 'type' => SC2_TYPEUNIT, 'upgrades_to' => array(0x009501,0x002101)),
		0x009301 => array('name' => "Burrowed Hydralisk", 'type' => SC2_TYPEUNIT, 'upgrades_to' => array(0x008901)),
		0x007901 => array('name' => "Hydralisk Den", 'type' => SC2_TYPEBUILDING, 'upgrades_to' => array()),
		0x008401 => array('name' => "Greater Spire", 'type' => SC2_TYPEBUILDING, 'upgrades_to' => array()),
		0x008A01 => array('name' => "Mutalisk", 'type' => SC2_TYPEUNIT, 'upgrades_to' => array()),
		0x008F01 => array('name' => "Brood Lord Cocoon", 'type' => SC2_TYPEUNIT, 'upgrades_to' => array(0x009001)),
		0x009C01 => array('name' => "Queen", 'type' => SC2_TYPEUNIT, 'upgrades_to' => array(0x009B01)),
		0x002501 => array('name' => "Changeling", 'type' => SC2_TYPEABILITY, 'upgrades_to' => array()),
		0x002001 => array('name' => "Infested Terran", 'type' => SC2_TYPEUNIT, 'upgrades_to' => array(0x009601)),
		0x00A701 => array('name' => "Creep Tumor", 'type' => SC2_TYPEABILITY, 'upgrades_to' => array()),
		0x007D01 => array('name' => "Nydus Network", 'type' => SC2_TYPEBUILDING, 'upgrades_to' => array()),
		0x008D01 => array('name' => "Infestor", 'type' => SC2_TYPEUNIT, 'upgrades_to' => array(0x009D01)),
		0x008E01 => array('name' => "Corruptor", 'type' => SC2_TYPEUNIT, 'upgrades_to' => array(0x008F01)),
		0x009001 => array('name' => "Brood Lord", 'type' => SC2_TYPEUNIT, 'upgrades_to' => array()),
		0x008C01 => array('name' => "Roach", 'type' => SC2_TYPEUNIT, 'upgrades_to' => array(0x009401)),
		0x007E01 => array('name' => "Baneling Nest", 'type' => SC2_TYPEBUILDING, 'upgrades_to' => array()),
		0x008001 => array('name' => "Spine Crawler", 'type' => SC2_TYPEBUILDING, 'upgrades_to' => array()),
		0x008B01 => array('name' => "Ultralisk", 'type' => SC2_TYPEUNIT, 'upgrades_to' => array(0x00A101)),
		0x009F01 => array('name' => "Overseer", 'type' => SC2_TYPEUNIT, 'upgrades_to' => array()),
		0x007B01 => array('name' => "Ultralisk Cavern", 'type' => SC2_TYPEBUILDING, 'upgrades_to' => array()),
		0x008801 => array('name' => "Overlord", 'type' => SC2_TYPEUNIT, 'upgrades_to' => array(0x009E01)),
		0x007C01 => array('name' => "Infestation Pit", 'type' => SC2_TYPEBUILDING, 'upgrades_to' => array()),
		0x007A01 => array('name' => "Spire", 'type' => SC2_TYPEBUILDING, 'upgrades_to' => array(0x008401)),
		0x007F01 => array('name' => "Roach Warren", 'type' => SC2_TYPEBUILDING, 'upgrades_to' => array()),
		0x009601 => array('name' => "Burrowed Infested Terran", 'type' => SC2_TYPEUNIT, 'upgrades_to' => array(0x002001)),
		0x007701 => array('name' => "Spawning Pool", 'type' => SC2_TYPEBUILDING, 'upgrades_to' => array()),
		0x002201 => array('name' => "Baneling", 'type' => SC2_TYPEUNIT, 'upgrades_to' => array(0x009101)),
		0x00A101 => array('name' => "Burrowed Ultralisk", 'type' => SC2_TYPEUNIT, 'upgrades_to' => array(0x008B01)),
		0x00D101 => array('name' => "Broodling", 'type' => SC2_TYPEUNIT, 'upgrades_to' => array()),
		0x00B201 => array('name' => "Infested Swarm Egg", 'type' => SC2_TYPEABILITY, 'upgrades_to' => array(0x002001)),
		0x00AB01 => array('name' => "Nydus Worm", 'type' => SC2_TYPEABILITY, 'upgrades_to' => array()),
		0x008301 => array('name' => "Hive", 'type' => SC2_TYPEBUILDING, 'upgrades_to' => array()),
		0x008501 => array('name' => "Cocoon", 'type' => SC2_TYPEABILITY, 'upgrades_to' => array()),
		0x007601 => array('name' => "Extractor", 'type' => SC2_TYPEBUILDING, 'upgrades_to' => array()),
		0x002101 => array('name' => "Baneling Cocoon", 'type' => SC2_TYPEUNIT, 'upgrades_to' => array(0x002201)),

		//Protoss
		0x006401 => array('name' => "Robotics Facility", 'type' => SC2_TYPEBUILDING, 'upgrades_to' => array()),
		0x006201 => array('name' => "Dark Shrine", 'type' => SC2_TYPEBUILDING, 'upgrades_to' => array()),
		0x006A01 => array('name' => "Dark Templar", 'type' => SC2_TYPEUNIT, 'upgrades_to' => array()),
		0x006001 => array('name' => "Stargate", 'type' => SC2_TYPEBUILDING, 'upgrades_to' => array()),
		0x005801 => array('name' => "Nexus", 'type' => SC2_TYPEBUILDING, 'upgrades_to' => array()),
		0x00A301 => array('name' => "Warp Gate", 'type' => SC2_TYPEBUILDING, 'upgrades_to' => array(0x005B01)),
		0x005901 => array('name' => "Pylon", 'type' => SC2_TYPEBUILDING, 'upgrades_to' => array()),
		0x006701 => array('name' => "Zealot", 'type' => SC2_TYPEUNIT, 'upgrades_to' => array()),
		0x006501 => array('name' => "Cybernetics Core", 'type' => SC2_TYPEBUILDING, 'upgrades_to' => array()),
		0x006E01 => array('name' => "Void Ray", 'type' => SC2_TYPEUNIT, 'upgrades_to' => array()),
		0x006F01 => array('name' => "Warp Prism", 'type' => SC2_TYPEUNIT, 'upgrades_to' => array()),
		0x005A01 => array('name' => "Assimilator", 'type' => SC2_TYPEBUILDING, 'upgrades_to' => array()),
		0x007101 => array('name' => "Immortal", 'type' => SC2_TYPEUNIT, 'upgrades_to' => array()),
		0x006801 => array('name' => "Stalker", 'type' => SC2_TYPEUNIT, 'upgrades_to' => array()),
		0x006301 => array('name' => "Robotics Bay", 'type' => SC2_TYPEBUILDING, 'upgrades_to' => array()),
		0x005E01 => array('name' => "Twilight Council", 'type' => SC2_TYPEBUILDING, 'upgrades_to' => array()),
		0x006101 => array('name' => "Templar Archives", 'type' => SC2_TYPEBUILDING, 'upgrades_to' => array()),
		0x005D01 => array('name' => "Fleet Beacon", 'type' => SC2_TYPEBUILDING, 'upgrades_to' => array()),
		0x005F01 => array('name' => "Photon Cannon", 'type' => SC2_TYPEBUILDING, 'upgrades_to' => array()),
		0x002301 => array('name' => "Mothership", 'type' => SC2_TYPEUNIT, 'upgrades_to' => array()),
		0x005C01 => array('name' => "Forge", 'type' => SC2_TYPEBUILDING, 'upgrades_to' => array()),
		0x006C01 => array('name' => "Phoenix", 'type' => SC2_TYPEUNIT, 'upgrades_to' => array()),
		0x006B01 => array('name' => "Sentry", 'type' => SC2_TYPEUNIT, 'upgrades_to' => array()),
		0x006D01 => array('name' => "Carrier", 'type' => SC2_TYPEUNIT, 'upgrades_to' => array()),
		0x001C01 => array('name' => "Collosus", 'type' => SC2_TYPEUNIT, 'upgrades_to' => array()),
		0x007001 => array('name' => "Observer", 'type' => SC2_TYPEUNIT, 'upgrades_to' => array()),
		0x007201 => array('name' => "Probe", 'type' => SC2_TYPEWORKER, 'upgrades_to' => array()),
		0x005B01 => array('name' => "Gateway", 'type' => SC2_TYPEBUILDING, 'upgrades_to' => array()),
		0x006901 => array('name' => "High Templar", 'type' => SC2_TYPEUNIT, 'upgrades_to' => array()),

		//Teran
		0x002401 => array('name' => "Point Defense Drone", 'type' => SC2_TYPEABILITY, 'upgrades_to' => array()),

		//Terran
		0x004901 => array('name' => "Flying Starport", 'type' => SC2_TYPEBUILDING, 'upgrades_to' => array(0x003601)),
		0x00A001 => array('name' => "Planetary Fortress", 'type' => SC2_TYPEBUILDING, 'upgrades_to' => array()),
		0x005501 => array('name' => "Raven", 'type' => SC2_TYPEUNIT, 'upgrades_to' => array()),
		0x005601 => array('name' => "Battlecruiser", 'type' => SC2_TYPEUNIT, 'upgrades_to' => array()),
		0x004D01 => array('name' => "Marine", 'type' => SC2_TYPEUNIT, 'upgrades_to' => array()),
		0x005101 => array('name' => "Thor", 'type' => SC2_TYPEUNIT, 'upgrades_to' => array()),
		0x003201 => array('name' => "Bunker", 'type' => SC2_TYPEBUILDING, 'upgrades_to' => array()),
		0x004A01 => array('name' => "SCV", 'type' => SC2_TYPEWORKER, 'upgrades_to' => array()),
		0x003901 => array('name' => "Fusion Core", 'type' => SC2_TYPEBUILDING, 'upgrades_to' => array()),
		0x002C01 => array('name' => "Command Center", 'type' => SC2_TYPEBUILDING, 'upgrades_to' => array(0x004101,0x00A201,0x00A001)),
		0x004801 => array('name' => "Flying Factory", 'type' => SC2_TYPEBUILDING, 'upgrades_to' => array(0x003501)),
		0x003801 => array('name' => "Armory", 'type' => SC2_TYPEBUILDING, 'upgrades_to' => array()),
		0x005001 => array('name' => "Marauder", 'type' => SC2_TYPEUNIT, 'upgrades_to' => array()),
		0x003401 => array('name' => "Ghost Academy", 'type' => SC2_TYPEBUILDING, 'upgrades_to' => array()),
		0x003601 => array('name' => "Starport", 'type' => SC2_TYPEBUILDING, 'upgrades_to' => array(0x004901)),
		0x002F01 => array('name' => "Barracks", 'type' => SC2_TYPEBUILDING, 'upgrades_to' => array(0x004B01)),
		0x002D01 => array('name' => "Supply Depot", 'type' => SC2_TYPEBUILDING, 'upgrades_to' => array(0x004C01)),
		0x001E01 => array('name' => "Reactor", 'type' => SC2_TYPEADDON, 'upgrades_to' => array()),
		0x002E01 => array('name' => "Refinery", 'type' => SC2_TYPEBUILDING, 'upgrades_to' => array()),
		0x005201 => array('name' => "Hellion", 'type' => SC2_TYPEUNIT, 'upgrades_to' => array()),
		0x003E01 => array('name' => "Seige Tank", 'type' => SC2_TYPEUNIT, 'upgrades_to' => array()),
		0x003A01 => array('name' => "Auto-Turret", 'type' => SC2_TYPEABILITY, 'upgrades_to' => array()),
		0x004B01 => array('name' => "Flying Barracks", 'type' => SC2_TYPEBUILDING, 'upgrades_to' => array(0x002F01)),
		0x004E01 => array('name' => "Reaper", 'type' => SC2_TYPEUNIT, 'upgrades_to' => array()),
		0x004201 => array('name' => "Tech Lab on Barracks", 'type' => SC2_TYPEADDON, 'upgrades_to' => array()),
		0x004401 => array('name' => "Tech Lab on Factory", 'type' => SC2_TYPEADDON, 'upgrades_to' => array()),
		0x003101 => array('name' => "Missile Turret", 'type' => SC2_TYPEBUILDING, 'upgrades_to' => array()),
		0x003501 => array('name' => "Factory", 'type' => SC2_TYPEBUILDING, 'upgrades_to' => array(0x004801)),
		0x00BB01 => array('name' => "MULE", 'type' => SC2_TYPEABILITY, 'upgrades_to' => array()),
		0x003001 => array('name' => "Engineering Bay", 'type' => SC2_TYPEBUILDING, 'upgrades_to' => array()),
		0x005301 => array('name' => "Medivac", 'type' => SC2_TYPEUNIT, 'upgrades_to' => array()),
		0x004F01 => array('name' => "Ghost", 'type' => SC2_TYPEUNIT, 'upgrades_to' => array()),
		0x003F01 => array('name' => "Viking", 'type' => SC2_TYPEUNIT, 'upgrades_to' => array()),
		0x005401 => array('name' => "Banshee", 'type' => SC2_TYPEUNIT, 'upgrades_to' => array()),
		0x00A201 => array('name' => "Orbital Command", 'type' => SC2_TYPEBUILDING, 'upgrades_to' => array()),
		0x003301 => array('name' => "Sensor Tower", 'type' => SC2_TYPEBUILDING, 'upgrades_to' => array()),
		0x004601 => array('name' => "Tech Lab on Starport", 'type' => SC2_TYPEADDON, 'upgrades_to' => array()),
		0x004C01 => array('name' => "Lowered Supply Depot", 'type' => SC2_TYPEBUILDING, 'upgrades_to' => array(0x002D01)),
		0x004101 => array('name' => "Flying Command Center", 'type' => SC2_TYPEBUILDING, 'upgrades_to' => array(0x002C01)),
	);
	
	public static $depHashes = array (
		"52cf2c611bd722eb1ad0eefa6d7951f7dbe0692fee5cb3aa5e814b3da3dd1727" => "Abyss",
		"d0482679c925f8c5dd6228f2411c995e0fd2768015eb3dbc777584922731d349" => "Abyss",
		"ee129ab013dd3fe080fc437d19b380b868ab3e302c35ae526ea6f15af6f6b078" => "Agria Valley",
		"dabe7260addb80d3ab342575311e748ef27226f4ddcbca233cec1c51a12b7fbb" => "Agria Valley",
		"4fa2764424a0d4b06c3c3f160df5ce17c382cec712d1a0b9aec104ca2236eff3" => "Arakan Citadel",
		"95b954f97b089148ea55828e32d1aff7d7b67cdafd86c56802e552baf2ca5a46" => "Arakan Citadel",
		"c22955a9e3b97f3511d1d3950859ce9d2855a338fb5ab931eb977c7188255bd6" => "Arid Wastes",
		"7abaae864c20201d74f657a6f7406106f113c8e6b52b078ecafdaaf290a761b6" => "Arid Wastes",
		"63d915ad5ba4971d6c890f781890ba9add450eb70d2209dad3665c24dbda7eff" => "Arid Wastes",
		"e33a5890ad2eedeaa56ce17356d1e618ad4ff99f50e76a34e7772e087802e8ea" => "Blistering Sands",
		"7dbf6b641bc5fce7abdaa352c66a9ba4e942d5bdf48a67e33cbff0ff32b3d47c" => "Burial Grounds",
		"87aa39eec31f5b4ca101da297fa56ec06751e8ea6d24105d72425f106bb59b49" => "Burning Tide",
		"e6c0c74690e4643e7acd1c7b4c64b8698b667035862dda9dca27ddacb9f494bf" => "Challenges",
		"73fe8f07d078da03618d9922f200dc720e33469bd8ec7302acd726c47af97357" => "Challenges",		
		"60d74c966e691599876ea18b55db99b36f2b62b85c05ff4e69551bb10bc0fd0b" => "Colony 426",
		"b1da6c1695b28a0189e0224e0c22e6a189294df360a7fda8cc46a61aa4170ae3" => "Colony 426",
		"824d92a85f50bc4924966d0c0ad8733ae581020cc0409c7ec42c76bc16fcaa26" => "Crossfire",
		"b68951b568e7255f442d7285a178870494b9b3e6023b831770a7558400b4cf5e" => "Debris Field",
		"5dc1d6dde914c02b8d64adf8f51cb1f811be7e89db53c6c0ded8c6e057202bad" => "Delta Quadrant",
		"e22873b1c653920390a0a9792afa05dae7ef6b425285023d0aed40ba08b316d9" => "Delta Quadrant",
		"f34aa7113bb3c1a7892bfa0dd60de7f34e619434ebefe45412164277abed5bf3" => "Desert Oasis",
		"2b3a003426de842f63fb97f2f68e6b71a6177d98ef9a945aba877f6cfb2c0a89" => "Dig Site",
		"d603d8b766deaab29c40cc8fba443e7d098a8541ed4fdc0620869d557612081b" => "Dig Site",
		"8fe944d0879bf22c6fc7a6b3f36ea946e43d6636448d6a08b7734d6822bc425d" => "Dirt Side",
		"505b560e0d2739a919384766e2f331fd42483a347c92111549c442e7e1cd738d" => "Discord IV",
		"58fca7d89dc576b889ae1f7ab194f425545fbe8c9dac2c3d739fcb1cd2c2f324" => "Elysium",
		"9cc56072526d6d7510b7103917fb4d2db2c68fa693602a99522c573dbe5ada92" => "Elysium",
		"da2512882b815f774b0a7469e0d52945c486599406271e10d8cb7193e77c64db" => "Extinction",
		"3719356530659b92d3ee95f0f2d723587131be9227dc1be8064d2fdd65c42919" => "Extinction",
		"c845f8e0b2084352047ed0ea2d8701321e3fa908b4d67b5002d04656b45b4a45" => "Forbidden Planet",
		"36422e713b8b825a7aa8c4f27301145400bacf76fd5ddd5caedde411c935ea0d" => "Frontier",
		"e26a0feb29db90af4abca9236a780c16eee02cbcc9929beca9398b60219f0e15" => "Frontier",
		"4c26d855a635fae81efa1bbebc39f52a3a0703ac966698288fe526cdaad7f35d" => "High Ground",
		"c687f2019d8727efd7643baaf374a6cfd17426d9fcadbf3c7e68add8fabfc0e6" => "High Ground",
		"1d961d930214c7de51b903db4c2e6796aee154531fe344686ce54803107a168c" => "High Orbit",
		"cbd1f11c2aab825f6570d51f4493390ac06ff565a06a69864c318f88129bccee" => "High Orbit",
		"395fb54902a9ae84698940dbf414a91520b3c27322515ff3e7e600b548ac81b7" => "Incineration Zone",
		"d3c721754d1534500142950e3943a0bd631f54df56593096c7740389f01fa816" => "Jungle Basin",
		"a6633d28c194b94e0dfbb163bcf6e3b307d4be0ac45d0f2c469b52cc17923c05" => "Jungle Basin",
		"a49177ada7f0f1848761319edd889f31a925b292a37b5d2622628a5dfa267f43" => "Junk Yard",
		"cc82ae2472c370fd10b7fd553a89369b7417e8a47cfa92bfa965d2a8235dd5cf" => "Junk Yard",
		"c7667c45f7cc6e3c2c453feee632b34dae9670f4a269bd373872f70cabd274eb" => "Kulas Ravine",
		"99e71fcbffff967b8f008d87e297c78ab913d0d129ca354ec8174b57f398ce68" => "Kulas Ravine",
		"445dca1ae32b25437023c0ea2497edda56a9f87b42bccbc0125054962c6bac8a" => "Kulas Ravine",
		"5e43b6129af26498d8c84a230936a2eb350e6f0ba54791cd41d5a22b6f728556" => "Lava Flow",
		"094049180812d81a8315152a1c86571ee59989197f05da673506bddc13c1536b" => "Lava Flow",
		"cfa196a601daaadd3d29a16cd1b2cf0a2917ad8d959ca9813ca12ce123782760" => "Lost Temple",
		"58558f452af5ccf36c2eb1a6f55f510b4779b21fb0c316cceca38a69c5ffb3d1" => "Lost Temple",
		"711dd8749cd5f04a06d1cf2f5f7b045febf9a655c382d09424620752594657d1" => "Megaton",
		"c10c18ee4ed6c9d947049eb36bab3ea92b9d63eb76a858e8a7c55009887f3ff7" => "Megaton",
		"71d1c6773ad36035333cad61ceac0789828e3b49690fad95efb1475ca3b6f1d8" => "Metalopolis",
		"cadd112e2aca3ed743863b669bb869ce86cdce3ad6171087b8182abe4ac8e9cd" => "Metalopolis",
		"5f1c8e57d5b1f33dd7a116fad1157848e890ee07de12181488fb77506b96279d" => "Monlyth Ridge",
		"dec3f2d368017bb2deb6e168a517325dd2ee6ff6e5e8f159724836987ee170bf" => "Monlyth Ridge",
		"ce28ed769b1e73267c94256fafec4c5569d346e325d06fdcb6d8339d4d3c8d5a" => "Monsoon",
		"7478eedd1db831d9549ce9e6480aaebe6f64b507417f33ff5d26dc2b55c2a2e8" => "Monsoon",
		"3e600ff2917bae8e5734e56808958ca59978f3868c06272761a5194b0c58ad32" => "New Antioch",
		"5c19269e878b4b9fbb37131eea80c3b3c828cc71f48c5d87b14e05585104a6d6" => "Nightmare",
		"638cbab4b1d5db1025c6edd07d9316f39731103fffcefaf6f0bd310cd8cc8002" => "Novice Blistering Sands",
		"f57d57fff5c83846f4c29d54afe14b32c29914f384f31eae76cba67c772aac6c" => "Novice Desert Oasis",
		"164f5ac1361b3cd2d0df13d15bd8871b0f5bd56de5a295e1a0a0fc38c33815e6" => "Novice Desert Oasis",
		"1fc47bb57ac40ba7187ef8df88574208be0f5ab33864beba5a42ddb78ecd6482" => "Novice Discord IV",
		"2d6f32bd6489cafc593d932d71d8975c3f1d5bf33618f66d39a3ffa5138965d1" => "Novice Kulas Ravine",
		"7e76c859b40163a3a03a767a347a9f3ee9d8088b66dde09103701f660d00a70d" => "Novice Kulas Ravine",
		"bb1b7483a7a8424f9e3463198a2e9830a8bae4cb05fc2be5eb8f7398a3f7feb9" => "Novice Metalopolis",
		"614bb763e37ee9e422d4747c4e1979a32a14e7013db02b386d5ef9d5c48108e5" => "Novice Monlyth Ridge",
		"0c09c2ab0f2243e3b0cef68a285e6ab83845f51e51d9cefb8acba2030f69fd0b" => "Novice Steppes of War",
		"9789e9b43d0e39eed624185d478de50f69a91e35aabaf9459cbd6098a9bf84be" => "Novice Steppes of War",
		"9a037ed0bb5bb0a5cd5f62961d89f319a6cef92fa0765645f1171cafca6a2012" => "Novice Terminus",
		"50f1dec30dbea330227e19d986f60b7cfeedd96bb12766ca473db4cf77a1f044" => "Novice Twilight Fortress",
		"c42491e72294796068e659e647502fb5c84f911c54e138e78edfb2b9edf8e01b" => "Novice Twilight Fortress",
		"3ab8aa07be82e09220e5bf6c0bb433907d84f5c31c8a18d97a776cd70681a291" => "Outpost",
		"002e8a38624400c054a5617966c7343b88d6b3a880b85ffeaa14b58fb1ef3d03" => "Outpost",
		"c685252a915588b6143e77450995b9ccf91f1260030c04d823a9d8deac9a5e7a" => "Primeval",
		"0d5ca2cfdfdec15c9343d2a41f5fb6246b6dbcc4b738924c361747af1d34d2ce" => "Quicksand",
		"cc6ed451285ea362e71b8749c108d8f20aa47dae001b8a17e29a8e3de0b36e31" => "Quicksand",
		"ca6d7bf4f761ad3be1ce2548136ff4485e711bb166fc867ad6570026aa09baec" => "Red Stone Gulch",
		"6c35257bc94cb735d1e5da649661e7eb7f9007e57e9b696364a4f65998f02635" => "Red Stone Gulch",
		"32e63267ec70860333cce4b11b2656908668bb8821e5faa2f7d429b341133632" => "Sacred Ground",
		"509a19f1cfc38ed0c34a71ec472b1c27aaa55d4fe02a35bbbc3c1e41ef05b006" => "Sand Canyon",
		"c8f51b300a4c67e6f7f74f1414492df7494e4f39e40d81909b250f6ac9b30811" => "Sand Canyon",
		"f88dfc7b28d920295984c0190a4eb4d33c16ef78acf82aaa70deedcc2e751de1" => "Scorched Haven",
		"98455021bf9badf9a55ab57edadf981ad264e783a322908d736f3e2989d694ac" => "Scorched Haven",
		"3e066c551a8692fef70f653a09d68959092ea2a3c8cc87e83b34602964c3b97d" => "Scrap Station",
		"fde384b702b1eb2f59f5c816506ee954238fe6aeec4e370085b1dcf622ec254b" => "Scrap Station",
		"c890239f06d85410e2709991c854965529b811ec54638d8103f3ef3d93d073e1" => "Shakuras Plateau",
		"147b0b1af57211e9dadbe715baff82e1393b8994dc7e0abce6d66401fbe3c673" => "Shakuras Plateau",
		"0ab117440ef3ddc71dc180c73a860c23bf43e118e22c54114bc29b3bd0c038cc" => "Steppes of War",
		"916959be930e8a42e31fe085a6c47aed2cc0f88f261d82b5fa511dde7d877f3b" => "Steppes of War",
		"be9c03af5d46e3fa236fa58e781a134e842289773390b94ada58d73c7f458a9d" => "Steppes of War",
		"8a5123168202e152a93e46446151ceba237d47310b766273836f279f71e0f133" => "Tarsonis Assault",
        "404c0b66d28ee67c93de133ca3e6043293def1413feb0b4304fbf655b268db02" => "Tarsonis Assault",
		"b6a71bd3eff8399dd6e374d3639b8950ea74763cc15b90fff197a0cad5b2a849" => "Tectonic Rift",
		"5326319f9cdc765b9ea0b87cda6902b58284014efc29975a61f98ed7f1c1b18e" => "Tectonic Rift",
		"f9039f994680d63928a549ec2082fd8429b0aa454c6f3346b2330c7dae47dee0" => "Tempest",
		"ab3adc76a9e49f6c6603292342b58039158bfeab412ee015c142bd610c5b884c" => "Tempest",
		"a286bef07928f4c9c12d9ff96c7e32a7580f1691cd84b3d5db3bb9487621860d" => "Terminus",
		"d54fab65d8ba0a8c867e48cfab365d381b7f22e5db4f0853b73432227b6ba271" => "The Bio Lab",
		"4fb5be5cf973fda2e16b684ef2d2452df8e51a76308543b6ca2a495912a87836" => "The Bio Lab",
		"f720500a2306f36330980d951ec016eaec6c33f0e7d7816323f3e1b111bde0da" => "Toxic Slums",
		"32d145b82695942fb39203c0369d8b0af321fcdb83771b9e8f4b05c902bfe1f9" => "Toxic Slums",
		"f99ea81406e87393885e793ec89aa3078154792429db49f948c7f52bfd636bd8" => "Twilight Fortress",
		"9ab0aa558962c30485f250431f2edb09bc7ff23b6746252549f51bbc63e404a1" => "Twilight Fortress",
		"47604d075cbc4ff7eb8a716192e47bc4ece549ec1d280d79de15a06c81357cc0" => "Typhon",
		"320cd118d6c04b15e07d14a7c8dea3ae8cf72aa5637b47c68ad7ee7d13b8302a" => "Typhon",
		"9c512517d50954090136bd220bf7e093a39b4d2dd0c46d9e5509e03cd462f93e" => "Ulaan Deeps",
		"e3fecbed67d6fda6edb5a9297a33e2dc6ccb67c866cee25c8ff5ed749adaa0cf" => "Ulaan Deeps",
		"badc898529ca88e0ba055d4563e8739304bc9811a6841fb313456a3b164cfea9" => "War Zone",
		"eb7332c0e7347c589f54234c98606f9b3a94638199985a3f3f1fb5c7cb4a64b8" => "War Zone",
		"666ebf589538e74ccd6f2e21dba2a80c03eff5c611e6d56ef19302c071aaa932" => "Worldship",
		"c89809141f63d58d05866ac8dad481a68cce8276264135d6a59b2c12abbea354" => "Xel'Naga Caverns",
		"fe69ceff7a3a7814260e42535303de14e6fcd96869acd345ebd7bcc451009d34" => "Xel'Naga Caverns"
	);
	
	
	public static $mapLocales = array(
		"Abyss" => array("deDE" => "Abgrund", "enUS" => "Abyss", "" => "Abyss", "esES" => "Abismo", "esMX" => "Abismo", "frFR" => "Abysse", "itIT" => "Abisso", "koKR" => "심연", "plPL" => "Otchłań", "ptBR" => "Abismo", "ruRU" => "Бездна", "zhCN" => "深渊", "zhTW" => "無盡深淵"),
		"Agria Valley" => array("deDE" => "Tal von Agria", "enUS" => "Agria Valley", "" => "Agria Valley", "esES" => "Valle de Agria", "esMX" => "Valle de Agria", "frFR" => "Vallée d'Agria", "itIT" => "Valle di Agria", "koKR" => "아그리아 골짜기", "plPL" => "Dolina Agrii", "ptBR" => "Vale de Agria", "ruRU" => "Долина Агрии", "zhCN" => "阿格瑞亚山谷", "zhTW" => "阿格利亞山谷"),
		"Arakan Citadel" => array("deDE" => "Zitadelle von Arakan", "enUS" => "Arakan Citadel", "" => "Arakan Citadel", "esES" => "Ciudadela de Arakan", "esMX" => "Ciudadela arakana", "frFR" => "Citadelle d'Arakan", "itIT" => "Cittadella di Arakan", "koKR" => "아라칸 요새", "plPL" => "Arakańska cytadela", "ptBR" => "Cidadela de Arakan", "ruRU" => "Цитадель Аракана", "zhCN" => "阿拉坎城堡", "zhTW" => "阿洛坎要塞"),
		"Arid Wastes" => array("deDE" => "Dürres Ödland", "enUS" => "Arid Wastes", "" => "Arid Wastes", "esES" => "Baldíos áridos", "esMX" => "", "frFR" => "", "itIT" => "Distese aride", "koKR" => "아리드 황무지", "plPL" => "", "ptBR" => "", "ruRU" => "Аридные пустоши", "zhCN" => "旱荒之地", "zhTW" => "貧地廢料"),
		"Blistering Sands" => array("deDE" => "Glühende Sande", "enUS" => "Blistering Sands", "" => "Blistering Sands", "esES" => "Arenas abrasadoras", "esMX" => "Arenas abrasadoras", "frFR" => "Désert ardent", "itIT" => "Sabbie ardenti", "koKR" => "폭염 사막", "plPL" => "Palące piaski", "ptBR" => "Dunas Escaldantes", "ruRU" => "Бурлящие пески", "zhCN" => "热砂荒野", "zhTW" => "極熱沙漠"),
		"Burial Grounds" => array("deDE" => "Begräbnisstätte", "enUS" => "Burial Grounds", "" => "Burial Grounds", "esES" => "Camposanto", "esMX" => "Cementerios", "frFR" => "Nécropole", "itIT" => "Cimitero", "koKR" => "묘지", "plPL" => "Cmentarzysko", "ptBR" => "Cemitério", "ruRU" => "Могильные холмы", "zhCN" => "湮埋之地", "zhTW" => "死亡墓園"),
		"Challenges" => array("deDE" => "Szenarien", "enUS" => "Challenges", "" => "Challenges", "esES" => "Retos", "esMX" => "Desafíos", "frFR" => "Défis", "itIT" => "Sfide", "koKR" => "도전", "plPL" => "Wyzwania", "ptBR" => "Desafios", "ruRU" => "Испытания", "zhCN" => "挑战", "zhTW" => "挑戰"),
		"Colony 426" => array("deDE" => "Kolonie 426", "enUS" => "Colony 426", "" => "Colony 426", "esES" => "Colonia 426", "esMX" => "Colonia 426", "frFR" => "Colonie 426", "itIT" => "Colonia 426", "koKR" => "426 거주지", "plPL" => "Kolonia 426", "ptBR" => "Colônia 426", "ruRU" => "Колония 426", "zhCN" => "移民地426", "zhTW" => "426區殖民地"),
		"Crossfire" => array("deDE" => "Kreuzfeuer", "enUS" => "Crossfire", "" => "Crossfire", "esES" => "Fuego cruzado", "esMX" => "Fuego cruzado", "frFR" => "Tirs croisés", "itIT" => "Fuoco incrociato", "koKR" => "십자포화", "plPL" => "Krzyżowy ogień", "ptBR" => "Fogo cruzado", "ruRU" => "Перекрестный огонь", "zhCN" => "交叉火力", "zhTW" => "交叉火力"),
		"Debris Field" => array("deDE" => "Trümmerfeld", "enUS" => "Debris Field", "" => "Debris Field", "esES" => "Campo de escombros", "esMX" => "Campo de restos", "frFR" => "Débris spatiaux", "itIT" => "Campo di detriti", "koKR" => "조각난 전장", "plPL" => "Gruzowisko", "ptBR" => "Campo de escombros", "ruRU" => "Мусорный завал", "zhCN" => "太空岛群", "zhTW" => "破碎群島"),
		"Delta Quadrant" => array("deDE" => "Delta-Quadrant", "enUS" => "Delta Quadrant", "" => "Delta Quadrant", "esES" => "Cuadrante Delta", "esMX" => "Cuadrante Delta", "frFR" => "Quadrant Delta", "itIT" => "Quadrante Delta", "koKR" => "델타 사분면", "plPL" => "Kwadrant Delta", "ptBR" => "Quadrante Delta", "ruRU" => "Квадрант «Дельта»", "zhCN" => "第四战区", "zhTW" => "第四象限"),
		"Desert Oasis" => array("deDE" => "Wüstenoase", "enUS" => "Desert Oasis", "" => "Desert Oasis", "esES" => "Oasis del desierto", "esMX" => "Oasis del desierto", "frFR" => "Oasis du désert", "itIT" => "Oasi desertica", "koKR" => "사막 오아시스", "plPL" => "Pustynna oaza", "ptBR" => "Oásis do deserto", "ruRU" => "Оазис", "zhCN" => "荒野绿洲", "zhTW" => "沙漠綠洲"),
		"Dig Site" => array("deDE" => "Ausgrabung", "enUS" => "Dig Site", "" => "Dig Site", "esES" => "Lugar de excavación", "esMX" => "Sitio de excavación", "frFR" => "Site de fouilles", "itIT" => "Sito di scavo", "koKR" => "발굴지", "plPL" => "Wykopalisko", "ptBR" => "Local da escavação", "ruRU" => "Раскопки", "zhCN" => "挖掘站", "zhTW" => "挖掘場"),
		"Dirt Side" => array("deDE" => "Staub und Dreck", "enUS" => "Dirt Side", "" => "Dirt Side", "esES" => "Tierra", "esMX" => "Lado de tierra", "frFR" => "Poussière", "itIT" => "Lordura", "koKR" => "먼지 지대", "plPL" => "Ustronie", "ptBR" => "Lado da terra", "ruRU" => "Глиняное плато", "zhCN" => "沙尘废墟", "zhTW" => "蠻荒之境"),
		"Discord IV" => array("deDE" => "Zwietracht IV", "enUS" => "Discord IV", "" => "Discord IV", "esES" => "Discordia IV", "esMX" => "Discordia IV", "frFR" => "Discorde IV", "itIT" => "Discordia IV", "koKR" => "불협화음 IV", "plPL" => "Niezgoda IV", "ptBR" => "Discórdia IV", "ruRU" => "Раздор IV", "zhCN" => "纷争IV", "zhTW" => "紛爭 IV"),
		"Elysium" => array("deDE" => "Elysium", "enUS" => "Elysium", "" => "Elysium", "esES" => "Elíseo", "esMX" => "Elisio", "frFR" => "Elysium", "itIT" => "Elisio", "koKR" => "엘리시움", "plPL" => "Pola Elizejskie", "ptBR" => "Elísio", "ruRU" => "Элизий", "zhCN" => "乐土", "zhTW" => "極樂淨土"),
		"Extinction" => array("deDE" => "Untergang", "enUS" => "Extinction", "" => "Extinction", "esES" => "Extinción", "esMX" => "Extinción", "frFR" => "Extinction", "itIT" => "Estinzione", "koKR" => "절멸", "plPL" => "Unicestwienie", "ptBR" => "Extinção", "ruRU" => "Истребление", "zhCN" => "灭绝之地", "zhTW" => "滅絕"),
		"Forbidden Planet" => array("deDE" => "Der verbotene Planet", "enUS" => "Forbidden Planet", "" => "Forbidden Planet", "esES" => "Planeta prohibido", "esMX" => "El planeta prohibido", "frFR" => "Planète interdite", "itIT" => "Pianeta proibito", "koKR" => "금단의 행성", "plPL" => "Zakazana planeta", "ptBR" => "Planeta Proibido", "ruRU" => "Закрытая планета", "zhCN" => "禁访行星", "zhTW" => "禁星"),
		"Frontier" => array("deDE" => "Grenzen", "enUS" => "Frontier", "" => "Frontier", "esES" => "Frontera", "esMX" => "Frontera", "frFR" => "Confins", "itIT" => "Frontiera", "koKR" => "변경 지대", "plPL" => "Pogranicze", "ptBR" => "Fronteira", "ruRU" => "Рубеж", "zhCN" => "前沿", "zhTW" => "邊疆地帶"),
		"High Ground" => array("deDE" => "Erhöhtes Terrain", "enUS" => "High Ground", "" => "High Ground", "esES" => "Terreno elevado", "esMX" => "Terreno elevado", "frFR" => "Surplomb", "itIT" => "Alture", "koKR" => "고지대", "plPL" => "Wysoka pozycja", "ptBR" => "Terreno elevado", "ruRU" => "Возвышение", "zhCN" => "高地", "zhTW" => "高地"),
		"High Orbit" => array("deDE" => "Hoher Orbit", "enUS" => "High Orbit", "" => "High Orbit", "esES" => "Alta órbita", "esMX" => "Órbita superior", "frFR" => "Orbite haute", "itIT" => "Orbita superiore", "koKR" => "고궤도", "plPL" => "Wysoka orbita", "ptBR" => "Órbita elevada", "ruRU" => "Высокая орбита", "zhCN" => "高位轨道", "zhTW" => "高軌道區"),
		"Incineration Zone" => array("deDE" => "Asche zu Asche", "enUS" => "Incineration Zone", "" => "Incineration Zone", "esES" => "Zona de incineración", "esMX" => "Zona de incineración", "frFR" => "Zone d'incinération", "itIT" => "Zona d'incenerimento", "koKR" => "소각 지대", "plPL" => "Strefa spalania", "ptBR" => "Zona de incineração", "ruRU" => "Зона испепеления", "zhCN" => "焚毁区", "zhTW" => "焚燒之地"),
		"Jungle Basin" => array("deDE" => "Dschungelbecken", "enUS" => "Jungle Basin", "" => "Jungle Basin", "esES" => "Cuenca selvática", "esMX" => "Cuenca de la selva", "frFR" => "Bassins luxuriants", "itIT" => "Selva oscura", "koKR" => "밀림 분지", "plPL" => "Tropikalna niecka", "ptBR" => "Vale da Selva", "ruRU" => "Изумрудная долина", "zhCN" => "蛮荒盆地", "zhTW" => "叢林盆地"),
		"Junk Yard" => array("deDE" => "Müllkippe", "enUS" => "Junk Yard", "" => "Junk Yard", "esES" => "Basurero", "esMX" => "Deshuesadero", "frFR" => "La décharge", "itIT" => "Discarica", "koKR" => "고물 처리장", "plPL" => "Wysypisko", "ptBR" => "Fero-velho", "ruRU" => "Свалка", "zhCN" => "垃圾场", "zhTW" => "垃圾港"),
		"Kulas Ravine" => array("deDE" => "Kulasklamm", "enUS" => "Kulas Ravine", "" => "Kulas Ravine", "esES" => "Barranco de Kulas", "esMX" => "Desfiladero de Kulas", "frFR" => "Ravin de Kulas", "itIT" => "Gola di Kulas", "koKR" => "쿨라스 협곡", "plPL" => "Wąwóz Kulas", "ptBR" => "Ravina Kulas", "ruRU" => "Каньон Кулас", "zhCN" => "库拉斯峡谷", "zhTW" => "庫拉斯溪谷"),
		"Lava Flow" => array("deDE" => "Im Lavastrom", "enUS" => "Lava Flow", "" => "Lava Flow", "esES" => "Flujo de lava", "esMX" => "Corriente de lava", "frFR" => "Fleuve de lave", "itIT" => "Flusso di lava", "koKR" => "용암 흐름", "plPL" => "Napływ lawy", "ptBR" => "Fluxo de lava", "ruRU" => "Поток лавы", "zhCN" => "岩浆浮台", "zhTW" => "熔漿岩地"),
		"Lost Temple" => array("deDE" => "Verschollener Tempel", "enUS" => "Lost Temple", "" => "Lost Temple", "esES" => "Templo perdido", "esMX" => "Templo perdido", "frFR" => "Temple oublié", "itIT" => "Tempio perduto", "koKR" => "잃어버린 사원", "plPL" => "Zaginiona świątynia", "ptBR" => "Templo Perdido", "ruRU" => "Затерянный храм", "zhCN" => "失落的神庙", "zhTW" => "失落神廟"),
		"Megaton" => array("deDE" => "Megaton", "enUS" => "Megaton", "" => "Megaton", "esES" => "Megatón", "esMX" => "Megatón", "frFR" => "Mégatonne", "itIT" => "Megaton", "koKR" => "메가톤", "plPL" => "Megatona", "ptBR" => "Megaton", "ruRU" => "Мегатонна", "zhCN" => "麦加顿", "zhTW" => "梅迦鎮"),
		"Metalopolis" => array("deDE" => "Metalopolis", "enUS" => "Metalopolis", "" => "Metalopolis", "esES" => "Metalópolis", "esMX" => "Metalópolis", "frFR" => "Métalopolis", "itIT" => "Metallopoli", "koKR" => "금속도시", "plPL" => "Metalopolis", "ptBR" => "Metalópolis", "ruRU" => "Металополис", "zhCN" => "钢铁都城", "zhTW" => "大都會"),
		"Monlyth Ridge" => array("deDE" => "Monlythgrat", "enUS" => "Monlyth Ridge", "" => "Monlyth Ridge", "esES" => "Sierra de Monlyth", "esMX" => "Cordillera de Monlito", "frFR" => "Crête de Monlyth", "itIT" => "Cresta di Monlyth", "koKR" => "몬리스 마루", "plPL" => "Góry Monlyth", "ptBR" => "Serra de Monlyth", "ruRU" => "Кряж Монлита", "zhCN" => "蒙莱斯山脊", "zhTW" => "蒙利斯山脈"),
		"Monsoon" => array("deDE" => "Monsun", "enUS" => "Monsoon", "" => "Monsoon", "esES" => "Monzón", "esMX" => "Monzón", "frFR" => "Mousson", "itIT" => "Monsone", "koKR" => "계절풍 지대", "plPL" => "Monsun", "ptBR" => "Monção", "ruRU" => "Муссон", "zhCN" => "季风地带", "zhTW" => "季風雨林"),
		"New Antioch" => array("deDE" => "Neu-Antioch", "enUS" => "New Antioch", "" => "New Antioch", "esES" => "New Antioch", "esMX" => "Nueva Antioquía", "frFR" => "Néo-Antioche", "itIT" => "New Antioch", "koKR" => "뉴 안티오크", "plPL" => "Nowa Antiochia", "ptBR" => "Nova Antióquia", "ruRU" => "Новый Антиох", "zhCN" => "新安提俄克", "zhTW" => "新安提奧克"),
		"Nightmare" => array("deDE" => "Albtraum", "enUS" => "Nightmare", "" => "Nightmare", "esES" => "Pesadilla", "esMX" => "Pesadilla", "frFR" => "Cauchemar", "itIT" => "Incubo", "koKR" => "악몽", "plPL" => "Koszmar", "ptBR" => "Pesadelo", "ruRU" => "Кошмар", "zhCN" => "梦魇", "zhTW" => "夢靨"),
		"Novice Blistering Sands" => array("deDE" => "Glühende Sande - Einsteiger", "enUS" => "Novice Blistering Sands", "" => "Novice Blistering Sands", "esES" => "Arenas abrasadoras principiante", "esMX" => "Novato - Arenas abrasadoras", "frFR" => "Désert ardent - Débutant", "itIT" => "Sabbie ardenti (Neofita)", "koKR" => "폭염 사막 초보자용", "plPL" => "Palące piaski – nowicjusz", "ptBR" => "Dunas escaldantes Novato", "ruRU" => "Бурлящие пески – новичок", "zhCN" => "热砂荒野（新手）", "zhTW" => "極熱沙漠（新手）"),
		"Novice Desert Oasis" => array("deDE" => "Wüstenoase - Einsteiger", "enUS" => "Novice Desert Oasis", "" => "Novice Desert Oasis", "esES" => "Oasis del desierto principiante", "esMX" => "Novato - Oasis del desierto", "frFR" => "Oasis du désert - Débutant", "itIT" => "Oasi desertica (Neofita)", "koKR" => "사막 오아시스 초보자용", "plPL" => "Pustynna oaza – nowicjusz", "ptBR" => "Oásis no deserto Novato", "ruRU" => "Оазис – новичок", "zhCN" => "荒野绿洲（新手）", "zhTW" => "沙漠綠洲（新手）"),
		"Novice Discord IV" => array("deDE" => "Zwietracht IV - Einsteiger", "enUS" => "Novice Discord IV", "" => "Novice Discord IV", "esES" => "Discordia IV principiante", "esMX" => "Novato - Discordia IV", "frFR" => "Discorde IV - Débutant", "itIT" => "Discordia IV (Neofita)", "koKR" => "불협화음 IV 초보자용", "plPL" => "Niezgoda IV – nowicjusz", "ptBR" => "Discórdia IV Novato", "ruRU" => "Раздор IV – новичок", "zhCN" => "纷争IV（新手）", "zhTW" => "紛爭 IV（新手）"),
		"Novice Kulas Ravine" => array("deDE" => "Kulasklamm - Einsteiger", "enUS" => "Novice Kulas Ravine", "" => "Novice Kulas Ravine", "esES" => "Barranco de Kulas principiante", "esMX" => "Novato - Desfiladero de Kulas", "frFR" => "Ravin de Kulas - Débutant", "itIT" => "Gola di Kulas (Neofita)", "koKR" => "쿨라스 협곡 초보자용", "plPL" => "Wąwóz Kulas – nowicjusz", "ptBR" => "Ravina Kulas Novato", "ruRU" => "Каньон Кулас – новичок", "zhCN" => "库拉斯峡谷（新手）", "zhTW" => "庫拉斯溪谷（新手）"),
		"Novice Metalopolis" => array("deDE" => "Metalopolis - Einsteiger", "enUS" => "Novice Metalopolis", "" => "Novice Metalopolis", "esES" => "Metalópolis principiante", "esMX" => "Novato - Metalópolis", "frFR" => "Métalopolis - Débutant", "itIT" => "Metallopoli (Neofita)", "koKR" => "금속도시 초보자용", "plPL" => "Metalopolis – nowicjusz", "ptBR" => "Metalópolis Novato", "ruRU" => "Металополис – новичок", "zhCN" => "钢铁都城（新手）", "zhTW" => "大都會（新手）"),
		"Novice Monlyth Ridge" => array("deDE" => "Monlythgrat - Einsteiger", "enUS" => "Novice Monlyth Ridge", "" => "Novice Monlyth Ridge", "esES" => "Sierra de Monlyth principiante", "esMX" => "Novato - Cordillera de Monlito", "frFR" => "Crête de Monlyth - Débutant", "itIT" => "Cresta di Monlyth (Neofita)", "koKR" => "몬리스 마루 초보자용", "plPL" => "Góry Monlyth – nowicjusz", "ptBR" => "Serra de Monlyth Novato", "ruRU" => "Кряж Монлита – новичок", "zhCN" => "蒙莱斯山脊（新手）", "zhTW" => "蒙利斯山脈（新手）"),
		"Novice Steppes of War" => array("deDE" => "Felder des Krieges - Einsteiger", "enUS" => "Novice Steppes of War", "" => "Novice Steppes of War", "esES" => "Estepas de guerra principiante", "esMX" => "Novato - Estepas de guerra", "frFR" => "Steppes de guerre - Débutant", "itIT" => "Steppe di guerra (Neofita)", "koKR" => "전쟁 초원 초보자용", "plPL" => "Wojenne stepy – nowicjusz", "ptBR" => "Estepes da Guerra Novato", "ruRU" => "Степи Войны – новичок", "zhCN" => "征战平原（新手）", "zhTW" => "戰爭平原（新手）"),
		"Novice Terminus" => array("deDE" => "Terminus - Einsteiger", "enUS" => "Novice Terminus", "" => "Novice Terminus", "esES" => "Terminus principiante", "esMX" => "Novato - Términus", "frFR" => "Terminus - Débutant", "itIT" => "Terminus (Neofita)", "koKR" => "터미누스 초보자용", "plPL" => "Terminus – nowicjusz", "ptBR" => "Terminus Novato", "ruRU" => "Терминий – новичок", "zhCN" => "集散平台（新手）", "zhTW" => "太空總站（新手）"),
		"Novice Twilight Fortress" => array("deDE" => "Zwielichtfestung - Einsteiger", "enUS" => "Novice Twilight Fortress", "" => "Novice Twilight Fortress", "esES" => "Fortaleza crepuscular principiante", "esMX" => "Novato - Fortaleza crepuscular", "frFR" => "Forteresse du crépuscule - Débutant", "itIT" => "Fortezza del Crepuscolo (Neofita)", "koKR" => "황혼 요새 초보자용", "plPL" => "Mroczna forteca – nowicjusz", "ptBR" => "Fortaleza do crepúsculo Novato", "ruRU" => "Сумеречная крепость – новичок", "zhCN" => "光影要塞（新手）", "zhTW" => "暮光堡壘（新手）"),
		"Outpost" => array("deDE" => "Außenposten", "enUS" => "Outpost", "" => "Outpost", "esES" => "Avanzada", "esMX" => "Puesto de avanzada", "frFR" => "Avant-poste", "itIT" => "Avamposto", "koKR" => "전초 기지", "plPL" => "Posterunek", "ptBR" => "Posto avançado", "ruRU" => "Аванпост", "zhCN" => "前哨站", "zhTW" => "哨站"),
		"Primeval" => array("deDE" => "Urwelt", "enUS" => "Primeval", "" => "Primeval", "esES" => "Primigenio", "esMX" => "Primitiva", "frFR" => "Origine", "itIT" => "Primevo", "koKR" => "태고의 대지", "plPL" => "Prastary", "ptBR" => "Primitivo", "ruRU" => "Первозданная природа", "zhCN" => "原始荒地", "zhTW" => "遠古之地"),
		"Quicksand" => array("deDE" => "Treibsand", "enUS" => "Quicksand", "" => "Quicksand", "esES" => "Arenas movedizas", "esMX" => "Arena movediza", "frFR" => "Sables mouvants", "itIT" => "Sabbie mobili", "koKR" => "모래늪", "plPL" => "Ruchome piaski", "ptBR" => "Areia Movediça", "ruRU" => "Зыбучие пески", "zhCN" => "流沙之地", "zhTW" => "流沙"),
		"Red Stone Gulch" => array("deDE" => "Redstone-Schlucht", "enUS" => "Red Stone Gulch", "" => "Red Stone Gulch", "esES" => "Garganta de Redstone", "esMX" => "Quebrada de Roquígnea", "frFR" => "Gorge de Pierre rouge", "itIT" => "Baratro di Redstone", "koKR" => "레드스톤 협곡", "plPL" => "Jar na Czerwonej Skale", "ptBR" => "Desfiladeiro em Pedra Vermelha", "ruRU" => "Ущелье Редстоуна", "zhCN" => "褐石峡谷", "zhTW" => "紅石峽谷"),
		"Sacred Ground" => array("deDE" => "Heiliger Boden", "enUS" => "Sacred Ground", "" => "Sacred Ground", "esES" => "Terreno sagrado", "esMX" => "Tierra sagrada", "frFR" => "Terre sacrée", "itIT" => "Suolo sacro", "koKR" => "성지", "plPL" => "Święta ziemia", "ptBR" => "Solo sagrado", "ruRU" => "Священные земли", "zhCN" => "圣地", "zhTW" => "聖地"),
		"Sand Canyon" => array("deDE" => "Sandcanyon", "enUS" => "Sand Canyon", "" => "Sand Canyon", "esES" => "Cañón arenoso", "esMX" => "Cañón arenoso", "frFR" => "Canyon des sables", "itIT" => "Canyon delle sabbie", "koKR" => "모래 협곡", "plPL" => "Piaszczysty kanion", "ptBR" => "Cânion de areia", "ruRU" => "Песчаный каньон", "zhCN" => "尘沙峡谷", "zhTW" => "塵沙峽谷"),
		"Scorched Haven" => array("deDE" => "Verbranntes Refugium", "enUS" => "Scorched Haven", "" => "Scorched Haven", "esES" => "Refugio calcinado", "esMX" => "Sanctuaris incinerado", "frFR" => "Havre calciné", "itIT" => "Terra bruciata", "koKR" => "잿더미 안식처", "plPL" => "Spopielony raj", "ptBR" => "Abrigus Queimado", "ruRU" => "Выжженная Гавань", "zhCN" => "焦灼之港", "zhTW" => "海文焦土"),
		"Scrap Station" => array("deDE" => "Schrottplatz", "enUS" => "Scrap Station", "" => "Scrap Station", "esES" => "Desguace", "esMX" => "Estación de chatarra", "frFR" => "Station de recyclage", "itIT" => "Stazione di rottamazione", "koKR" => "고철 처리장", "plPL" => "Stacja złomu", "ptBR" => "Estação de sucata", "ruRU" => "Мусоросборник", "zhCN" => "废品站", "zhTW" => "廢料處理站"),
		"Shakuras Plateau" => array("deDE" => "Shakuras-Plateau", "enUS" => "Shakuras Plateau", "" => "Shakuras Plateau", "esES" => "Meseta de Shakuras", "esMX" => "Meseta de Shakuras", "frFR" => "Plateau de Shakuras", "itIT" => "Altopiano di Shakuras", "koKR" => "샤쿠라스 고원", "plPL" => "Płaskowyż Shakuras", "ptBR" => "Platô de Shakuras", "ruRU" => "Плато Шакураса", "zhCN" => "萨古拉斯高地", "zhTW" => "夏庫拉斯高原"),
		"Steppes of War" => array("deDE" => "Felder des Krieges", "enUS" => "Steppes of War", "" => "Steppes of War", "esES" => "Estepas de guerra", "esMX" => "Estepas de guerra", "frFR" => "Steppes de guerre", "itIT" => "Steppe di guerra", "koKR" => "전쟁 초원", "plPL" => "Wojenne stepy", "ptBR" => "Estepes da Guerra", "ruRU" => "Степи Войны", "zhCN" => "征战平原", "zhTW" => "戰爭平原"),
		"Tarsonis Assault" => array("deDE" => "Angriff auf Tarsonis", "enUS" => "Tarsonis Assault", "" => "Tarsonis Assault", "esES" => "Asalto a Tarsonis", "esMX" => "Asalto en Tarsonis", "frFR" => "Attaque sur tarsonis", "itIT" => "Assalto a Tarsonis", "koKR" => "타소니스 공습", "plPL" => "Atak na Tarsonis", "ptBR" => "Ataque em Tarsonis", "ruRU" => "Штурм Тарсониса", "zhCN" => "塔桑尼斯之战", "zhTW" => "塔桑尼斯突擊戰"),
		"Tectonic Rift" => array("deDE" => "Tektonischer Riss", "enUS" => "Tectonic Rift", "" => "Tectonic Rift", "esES" => "Falla tectónica", "esMX" => "Fisura tecnónica", "frFR" => "Faille tectonique", "itIT" => "Faglia tettonica", "koKR" => "지각 균열", "plPL" => "Szczelina tektoniczna", "ptBR" => "Fenda tectônica", "ruRU" => "Тектонический разлом", "zhCN" => "裂谷", "zhTW" => "地殼裂痕"),
		"Tempest" => array("deDE" => "Tempest", "enUS" => "Tempest", "" => "Tempest", "esES" => "Tempestad", "esMX" => "Tempestad", "frFR" => "Tempête", "itIT" => "Tempesta", "koKR" => "폭풍우 전장", "plPL" => "Zamieć", "ptBR" => "Tempestade", "ruRU" => "Буря", "zhCN" => "风潮山地", "zhTW" => "大風暴"),
		"Terminus" => array("deDE" => "Terminus", "enUS" => "Terminus", "" => "Terminus", "esES" => "Terminus", "esMX" => "Términus", "frFR" => "Terminus", "itIT" => "Terminus", "koKR" => "터미누스", "plPL" => "Terminus", "ptBR" => "Terminus", "ruRU" => "Терминий", "zhCN" => "集散平台", "zhTW" => "太空總站"),
		"The Bio Lab" => array("deDE" => "Das Biolabor", "enUS" => "The Bio Lab", "" => "The Bio Lab", "esES" => "Laboratorio biológico", "esMX" => "El biolaboratorio", "frFR" => "Laboratoire biologique", "itIT" => "Laboratorio biologico", "koKR" => "생체 실험실", "plPL" => "Laboratorium biologiczne", "ptBR" => "O laboratório biológico", "ruRU" => "Биолаборатория", "zhCN" => "生化实验区", "zhTW" => "生物實驗室"),
		"Toxic Slums" => array("deDE" => "Giftige Slums", "enUS" => "Toxic Slums", "" => "Toxic Slums", "esES" => "Suburbios tóxicos", "esMX" => "Tugurios tóxicos", "frFR" => "Bas-fonds toxiques", "itIT" => "Bassifondi tossici", "koKR" => "독지대", "plPL" => "Toksyczne slumsy", "ptBR" => "Favelas tóxicas", "ruRU" => "Токсичные трущобы", "zhCN" => "毒壤贫民区", "zhTW" => "毒窟"),
		"Twilight Fortress" => array("deDE" => "Zwielichtfestung", "enUS" => "Twilight Fortress", "" => "Twilight Fortress", "esES" => "Fortaleza crepuscular", "esMX" => "Fortaleza crepuscular", "frFR" => "Forteresse du crépuscule", "itIT" => "Fortezza del Crepuscolo", "koKR" => "황혼 요새", "plPL" => "Mroczna forteca", "ptBR" => "Fortaleza do Crepúsculo", "ruRU" => "Сумеречная крепость", "zhCN" => "光影要塞", "zhTW" => "暮光堡壘"),
		"Typhon" => array("deDE" => "Typhon", "enUS" => "Typhon", "" => "Typhon", "esES" => "Typhon", "esMX" => "Tifón", "frFR" => "Typhon", "itIT" => "Tifone", "koKR" => "티폰", "plPL" => "Typhon", "ptBR" => "Tífon", "ruRU" => "Тифон", "zhCN" => "提丰", "zhTW" => "鈦風"),
		"Ulaan Deeps" => array("deDE" => "Die Tiefen von Ulaan", "enUS" => "Ulaan Deeps", "" => "Ulaan Deeps", "esES" => "Profundidades de Ulaan", "esMX" => "Honduras de Ulaan", "frFR" => "Profondeurs d'Ulaan", "itIT" => "Abissi di Ulaan", "koKR" => "울란의 심연", "plPL" => "Otchłanie Ulaan", "ptBR" => "Profundezas de Ulaan", "ruRU" => "Улаанские глубины", "zhCN" => "乌兰深渊", "zhTW" => "烏蘭深穴"),
		"War Zone" => array("deDE" => "Kriegsgebiet", "enUS" => "War Zone", "" => "War Zone", "esES" => "Zona de guerra", "esMX" => "Zona de guerra", "frFR" => "Zone de guerre", "itIT" => "Zona di guerra", "koKR" => "전쟁 지역", "plPL" => "Strefa wojenna", "ptBR" => "Zona de guerra", "ruRU" => "Зона конфликта", "zhCN" => "战区", "zhTW" => "戰爭特區"),
		"Worldship" => array("deDE" => "Das Weltenschiff", "enUS" => "Worldship", "" => "Worldship", "esES" => "Nave planetaria", "esMX" => "Navemundo", "frFR" => "Vaisseau-monde", "itIT" => "Nave dei mondi", "koKR" => "세계함", "plPL" => "Statek-świat", "ptBR" => "Nave Mundo", "ruRU" => "Корабль зел-нага", "zhCN" => "世界舰船", "zhTW" => "宇宙艦"),
		"Xel'Naga Caverns" => array("deDE" => "Xel'Naga-Höhlen", "enUS" => "Xel'Naga Caverns", "" => "Xel'Naga Caverns", "esES" => "Cavernas Xel'Naga", "esMX" => "Cavernas Xel'Naga", "frFR" => "Cavernes Xel'Naga", "itIT" => "Caverne xel'naga", "koKR" => "젤나가 동굴", "plPL" => "Jaskinie xel'naga", "ptBR" => "Cavernas Xel'Naga", "ruRU" => "Пещеры зел-нага", "zhCN" => "萨尔纳加秘窟", "zhTW" => "薩爾納加洞穴")
	);
	// returns the ability array for the specified ability code ($num) and game build ($build)
	// return false if the ability code is unknown
	static function getAbilityArray($num, $build) {
		while ($build > 0) {
			if ($build >= 18574) {
				$num += 0x010000;
				$build = 17326;
			}
		       if ($build >= 17326) {
			 if ($num > 0x012c00) {
			   $num -= 0x200;
			 } elseif ($num > 0x002900) {
			   $num -= 0x100;
			 }
			 $array = self::$ABILITYCODES_16561;
				$build = 16560;
		       }
		       elseif ($build >= 16561) {
				$array = self::$ABILITYCODES_16561;
				$build = 16560;
			}
			else {
				$array = self::$ABILITYCODES;
				$build = 0;
			}

			//echo sprintf(" (%06X)\n<br />",$num);
			if (isset($array[$num])) {
				if (isset($array[$num]['link'])) {
					$num = $array[$num]['link'];
				}
				else return $array[$num];
			}
			else return false;
		}
		return false;
	}
	// returns the unit array for the specified unit code ($num) and game build ($build)
	// return false if the unit code is unknown
	static function getUnitArray($num, $build) {
		if ($build >= 16561) return false;
		if (isset(self::$UNITCODES[$num]))
			return self::$UNITCODES[$num];
		return false;
	}
}

?>
